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解析html开发库pyquery使用方法
Feb 07 Python
Python实现的几个常用排序算法实例
Jun 16 Python
详解Python中的__getitem__方法与slice对象的切片操作
Jun 27 Python
关于Python中异常(Exception)的汇总
Jan 18 Python
Python使用Matplotlib实现Logos设计代码
Dec 25 Python
Python实现求解一元二次方程的方法示例
Jun 20 Python
python使用Plotly绘图工具绘制散点图、线形图
Apr 02 Python
Python集中化管理平台Ansible介绍与YAML简介
Jun 12 Python
Python实现计算对象的内存大小示例
Jul 10 Python
Flask教程之重定向与错误处理实例分析
Aug 01 Python
matplotlib基础绘图命令之bar的使用方法
Aug 13 Python
如何将Pycharm中调整字体大小的方式设置为&quot;ctrl+鼠标滚轮上下滑&quot;
Nov 17 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
php中模拟POST传递数据的两种方法分享
2011/09/16 PHP
PHP运行SVN命令显示某用户的文件更新记录的代码
2014/01/03 PHP
使用PHP和JavaScript判断请求是否来自微信内浏览器
2015/08/18 PHP
php生成带logo二维码方法小结
2016/04/08 PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
2017/02/04 PHP
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
2017/02/18 PHP
PHP实现对xml进行简单的增删改查(CRUD)操作示例
2017/05/19 PHP
一份老外写的XMLHttpRequest代码多浏览器支持兼容性
2007/01/11 Javascript
jQuery 源码分析笔记(3) Deferred机制
2011/06/19 Javascript
jquery提取元素里的纯文本不包含span等里的内容
2013/09/30 Javascript
jquery attr()设置和获取属性值实例教程
2016/09/25 Javascript
javascript定时器取消定时器及优化方法
2017/07/08 Javascript
mint-ui 时间插件使用及获取选择值的方法
2018/02/09 Javascript
angular 服务的单例模式(依赖注入模式下)详解
2018/10/22 Javascript
vue+iview 兼容IE11浏览器的实现方法
2019/01/07 Javascript
简单了解node npm cnpm的具体使用方法
2019/02/27 Javascript
小程序实现层叠卡片滑动效果
2019/08/26 Javascript
Angular8引入百度Echarts进行图表分析的实现代码
2019/11/27 Javascript
JavaScript实现飞舞的泡泡效果
2020/02/07 Javascript
js对象属性名驼峰式转下划线的实例代码
2020/09/17 Javascript
[15:39]教你分分钟做大人:龙骑士
2014/10/30 DOTA
跟老齐学Python之做一个小游戏
2014/09/28 Python
使用Python的Twisted框架编写简单的网络客户端
2015/04/16 Python
给Python入门者的一些编程建议
2015/06/15 Python
详解Python使用simplejson模块解析JSON的方法
2016/03/24 Python
Python通过命令开启http.server服务器的方法
2017/11/04 Python
Python利用openpyxl库遍历Sheet的实例
2018/05/03 Python
高三高考决心书
2014/03/11 职场文书
内衣营销方案
2014/03/15 职场文书
汽车技术服务与贸易专业求职信
2014/07/20 职场文书
公务员党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
贫困生助学金感谢信
2015/01/21 职场文书
预备党员自我评价范文
2015/03/04 职场文书
关于成立领导小组的通知
2015/04/23 职场文书
2019年让高校“心动”的自荐信
2019/03/25 职场文书
Pytorch可视化的几种实现方法
2021/06/10 Python