python面向对象_详谈类的继承与方法的重载


Posted in Python onJune 07, 2017

python面向对象_详谈类的继承与方法的重载

1. 类的继承与方法的重载

python面向对象_详谈类的继承与方法的重载

python面向对象_详谈类的继承与方法的重载

上面就是先定义了一个类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面向对象_详谈类的继承与方法的重载就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python操作列表的常用方法分享
Feb 13 Python
Python标准库urllib2的一些使用细节总结
Mar 16 Python
解读Django框架中的低层次缓存API
Jul 24 Python
使用python实现省市三级菜单效果
Jan 20 Python
python版本坑:md5例子(python2与python3中md5区别)
Jun 20 Python
Python 忽略warning的输出方法
Oct 18 Python
使用python实现抓取腾讯视频所有电影的爬虫
Apr 15 Python
python实现文件助手中查看微信撤回消息
Apr 29 Python
Mysql数据库反向生成Django里面的models指令方式
May 18 Python
python如何代码集体右移
Jul 20 Python
python 录制系统声音的示例
Dec 21 Python
python神经网络 使用Keras构建RNN训练
May 04 Python
windows下python连接oracle数据库
Jun 07 #Python
Python使用剪切板的方法
Jun 06 #Python
Python实现单词翻译功能
Jun 06 #Python
Python实现Smtplib发送带有各种附件的邮件实例
Jun 05 #Python
python实现的正则表达式功能入门教程【经典】
Jun 05 #Python
Python中easy_install 和 pip 的安装及使用
Jun 05 #Python
详解Python pygame安装过程笔记
Jun 05 #Python
You might like
动易数据转成dedecms的php程序
2007/04/07 PHP
163的邮件用phpmailer发送(实例详解)
2013/06/24 PHP
ThinkPHP调试模式与日志记录概述
2014/08/22 PHP
linux中cd命令使用详解
2015/01/08 PHP
thinkPHP实现基于ajax的评论回复功能
2018/06/22 PHP
PHP实现断点续传乱序合并文件的方法
2018/09/06 PHP
jquery.alert 弹出式复选框实现代码
2009/06/15 Javascript
深入理解JavaScript系列(6) 强大的原型和原型链
2012/01/15 Javascript
html5的自定义data-*属性和jquery的data()方法的使用示例
2013/08/21 Javascript
jquery动态添加删除(tr/td)
2015/02/09 Javascript
基于JS实现弹出一个隐藏的div窗口body页面变成灰色并且不可被编辑
2016/12/14 Javascript
bootstrap table 表格中增加下拉菜单末行出现滚动条的快速解决方法
2017/01/05 Javascript
JS实现基于Sketch.js模拟成群游动的蝌蚪运动动画效果【附demo源码下载】
2017/08/18 Javascript
Three.js加载外部模型的教程详解
2017/11/10 Javascript
vue cli3.0结合echarts3.0与地图的使用方法示例
2019/03/26 Javascript
微信小程序 wx:for遍历循环使用实例解析
2019/09/09 Javascript
nodemon实现Typescript项目热更新的示例代码
2019/11/19 Javascript
解决小程序无法触发SESSION问题
2020/02/03 Javascript
Python查找相似单词的方法
2015/03/05 Python
Django imgareaselect手动剪切头像实现方法
2015/05/26 Python
python中获得当前目录和上级目录的实现方法
2017/10/12 Python
致Python初学者 Anaconda入门使用指南完整版
2018/04/05 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
2019/08/05 Python
python实现ip地址的包含关系判断
2020/02/07 Python
python实现在线翻译
2020/06/18 Python
python中常见错误及解决方法
2020/06/21 Python
python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警
2021/01/30 Python
加拿大最大的钻石商店:Peoples Jewellers
2018/01/01 全球购物
Under Armour安德玛中国官网:美国高端运动科技品牌
2018/03/09 全球购物
文员个人求职自荐信
2013/09/21 职场文书
药店主任岗位责任制
2014/02/10 职场文书
融资租赁计划书
2014/04/29 职场文书
小学教师读书活动总结
2014/07/08 职场文书
反腐倡廉主题教育活动总结
2015/05/07 职场文书
员工聘用合同范本
2015/09/21 职场文书
2016中学教师读书心得体会
2016/01/13 职场文书