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中的greenlet包实现并发编程的入门教程
Apr 16 Python
Python优先队列实现方法示例
Sep 21 Python
详解Python开发中如何使用Hook技巧
Nov 01 Python
python正则表达式及使用正则表达式的例子
Jan 22 Python
django请求返回不同的类型图片json,xml,html的实例
May 22 Python
python实现大文件分割与合并
Jul 22 Python
django的ORM操作 增加和查询
Jul 26 Python
pygame实现俄罗斯方块游戏(AI篇1)
Oct 29 Python
Python绘图实现显示中文
Dec 04 Python
大数据分析用java还是Python
Jul 06 Python
python设置表格边框的具体方法
Jul 17 Python
Python如何将装饰器定义为类
Jul 30 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通过COM类调用组件的实现代码
2012/01/11 PHP
基于curl数据采集之单页面并行采集函数get_htmls的使用
2013/04/28 PHP
Yii2中关联查询简单用法示例
2016/08/10 PHP
PHP实现字符串翻转功能的方法【递归与循环算法】
2017/11/03 PHP
用JavaScript脚本实现Web页面信息交互
2006/10/11 Javascript
onsubmit阻止form表单提交与onclick的相关操作
2010/09/03 Javascript
用JS判断IE版本的代码 超管用!
2011/08/09 Javascript
js使用eval解析json实例与注意事项分享
2014/01/18 Javascript
jquery插件开发之实现jquery手风琴功能分享
2014/03/10 Javascript
详解javascript中的事件处理
2015/11/06 Javascript
完美解决jQuery符号$与其他javascript 库、框架冲突的问题
2016/08/09 Javascript
KnockoutJS 3.X API 第四章之数据控制流with绑定
2016/10/10 Javascript
深入浅析Nodejs的Http模块
2017/06/20 NodeJs
Vue 解决在element中使用$notify在提示信息中换行问题
2020/11/11 Javascript
[01:15:00]LGD vs Mineski Supermajor 胜者组 BO3 第一场 6.5
2018/06/06 DOTA
Python在不同目录下导入模块的实现方法
2017/10/27 Python
python中hashlib模块用法示例
2017/10/30 Python
python获取酷狗音乐top500的下载地址 MP3格式
2018/04/17 Python
对python numpy数组中冒号的使用方法详解
2018/04/17 Python
python 获取指定文件夹下所有文件名称并写入列表的实例
2018/04/23 Python
python清除函数占用的内存方法
2018/06/25 Python
win7+Python3.5下scrapy的安装方法
2018/07/31 Python
centos6.5安装python3.7.1之后无法使用pip的解决方案
2019/02/14 Python
python使用pip安装SciPy、SymPy、matplotlib教程
2019/11/20 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
2020/04/03 Python
耐克巴西官方网站:Nike巴西
2016/08/14 全球购物
Vilebrequin美国官方网上商店:法国豪华泳装品牌
2020/02/22 全球购物
C#里面如何判断一个Object是否是某种类型(如Boolean)?
2016/02/10 面试题
海飞丝的广告词
2014/03/20 职场文书
4s店销售经理岗位职责
2014/07/19 职场文书
群众路线查摆问题整改措施
2014/10/10 职场文书
政风行风评议心得体会
2014/10/21 职场文书
国庆庆典邀请函
2015/02/02 职场文书
2015年世界卫生日活动总结
2015/02/09 职场文书
python实现简单反弹球游戏
2021/04/12 Python
修改并编译golang源码的操作步骤
2021/07/25 Golang