python面向对象_详谈类的继承与方法的重载
作者:jingxian 时间:2021-03-21 08:38:18
1. 类的继承与方法的重载
上面就是先定义了一个类A,然后由定义了一个类B,B继承了类A,这样B就有了A的非私有属性和方法。
class Washer:
company='ZBL'
def __init__(self,water=10,scour=2):
self._water=water #不想让用户直接访问实例变量,可以标志成私有
self.scour=scour
self.year=2000#这是生产日期
#属性包装,将water属性包装成方法,用户使用water时实际是访问的方法
@staticmethod #定义一个静态方法
def spins_ml(spins):
return spins*0.4
print('company:',Washer.company)
#print('year:',self.year)#错误,静态方法不能使用实例属性
@classmethod
def get_washer(cls,water,scour):#cls相当于实例方法中的self,调用是不用提供这个参数
return cls(water,cls.spins_ml(scour))#cls代表类名Washer,故不是硬编码(改类名是不用改cls,若cls用类名代替也对,但若改类名这个地方也需要改动)
@property
def water1(self):#如果用户使用 实例.water相当于访问这个方法,而不是真的访问属性
return self._water
@water1.setter
def water1(self,water):
if 0<water<=500:
self._water=water
else:
print('set Failure!')
@property
def total_year(self):
return 2017-self.year
def set_water(self,water):
self.water=water
def set_scour(self,scour):
self.scour=scour
def add_water(self):
print('Add water:',self._water)
def add_scour(self):
print('Add scour:',self.scour)
def start_wash(self):
self.add_water()
self.add_scour()
print('Start wash...')
class WasherDry(Washer):# 建立一个新类,继承自Washer
def dry(self):#新类中可以定义只属于子类的新方法
print('Dry cloths...')
def start_wash(self):#在子类中新定义与父类同名的方法就是方法的重载
self.add_scour()
self.add_water()
if __name__=='__main__':
## print(Washer.spins_ml (8))
## w=Washer()
## print(w.spins_ml(8))
## w=Washer(200,Washer.spins_ml(8))
## w.start_wash()
w=WasherDry()
w.start_wash()
print(w.scour,w.company)
w.dry()
标签:python,继承,重载,面向对象
0
投稿
猜你喜欢
Python基于opencv实现的人脸识别(适合初学者)
2021-10-13 19:39:29
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
2022-08-08 04:10:31
Access2003:不支持这种ActiveX控件
2010-12-09 19:59:00
vue上传图片组件编写代码
2024-05-10 14:14:33
SQL Server获取磁盘空间使用情况
2024-01-21 17:30:43
Django初步使用Celery处理耗时任务和定时任务问题
2023-10-15 07:41:59
python中shell执行知识点
2022-11-30 08:41:15
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
2023-11-16 22:45:05
SQL Server 2016 配置 SA 登录教程
2024-01-13 10:17:53
浅谈redux, koa, express 中间件实现对比解析
2024-05-02 16:28:05
Mysql 查询JSON结果的相关函数汇总
2024-01-23 22:30:16
教你如何使用Python下载B站视频的详细教程
2023-04-12 00:39:48
bootstrap-table后端分页功能完整实例
2024-04-29 13:11:44
一个JSP页面导致的tomcat内存溢出的解决方法
2023-06-30 04:14:41
python几种常用功能实现代码实例
2023-03-11 07:10:14
详解PHP的引用计数
2023-11-14 18:00:34
Pytest中conftest.py的用法
2022-08-05 03:48:32
Python实现115网盘自动下载的方法
2022-08-13 21:57:33
python使用threading.Condition交替打印两个字符
2022-04-13 09:01:46
Python中pip安装非PyPI官网第三方库的方法
2021-01-20 15:51:18