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处理文本文件并生成指定格式的文件
Jul 31 Python
python+selenium实现京东自动登录及秒杀功能
Nov 18 Python
Python通过属性手段实现只允许调用一次的示例讲解
Apr 21 Python
Python实现按当前日期(年、月、日)创建多级目录的方法
Apr 26 Python
python 找出list中最大或者最小几个数的索引方法
Oct 30 Python
Python3调用百度AI识别图片中的文字功能示例【测试可用】
Mar 13 Python
使用python搭建服务器并实现Android端与之通信的方法
Jun 28 Python
python tornado修改log输出方式
Nov 18 Python
python 输出列表元素实例(以空格/逗号为分隔符)
Dec 25 Python
Python xmltodict模块安装及代码实例
Oct 05 Python
Python 转移文件至云对象存储的方法
Feb 07 Python
Python django中如何使用restful框架
Jun 23 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
adodb与adodb_lite之比较
2006/12/31 PHP
编写PHP程序检查字符串中的中文字符个数的实例分享
2016/03/17 PHP
浅谈PHP中new self()和new static()的区别
2017/08/11 PHP
laravel 实现用户登录注销并限制功能
2019/10/24 PHP
PHP连接MySQL数据库三种实现方法
2020/12/10 PHP
JQuery浮动DIV提示信息并自动隐藏的代码
2010/08/29 Javascript
jquery对元素拖动排序示例
2014/01/16 Javascript
实现网页页面跳转的几种方法(meta标签、js实现、php实现)
2014/05/20 Javascript
自己动手写的javascript前端等待控件
2015/10/30 Javascript
学习JavaScript设计模式(链式调用)
2015/11/26 Javascript
JS实现随页面滚动显示/隐藏窗口固定位置元素
2016/02/26 Javascript
D3.js实现雷达图的方法详解
2016/09/22 Javascript
AngularJS指令与指令之间的交互功能示例
2016/12/14 Javascript
通过BootStrap-select插件 js jQuery控制select属性变化
2017/01/03 Javascript
Angular ng-animate和ng-cookies用法详解
2018/04/18 Javascript
微信小程序 slot踩坑的解决
2019/04/01 Javascript
详解NodeJs项目 CentOs linux服务器线上部署
2019/09/16 NodeJs
JavaScript实现弹出窗口效果
2020/12/09 Javascript
[04:42]2015国际邀请赛CDEC战队晋级之路
2015/08/13 DOTA
Python数组定义方法
2016/04/13 Python
Django admin美化插件suit使用示例
2017/12/12 Python
python使用logging模块发送邮件代码示例
2018/01/18 Python
利用Python半自动化生成Nessus报告的方法
2019/03/19 Python
使用Python实现批量ping操作方法
2020/05/06 Python
Python requests模块安装及使用教程图解
2020/06/30 Python
css3和jquery实现的可折叠导航菜单适合放在手机网页的导航菜单
2014/09/02 HTML / CSS
详解H5 活动页之移动端 REM 布局适配方法
2017/12/07 HTML / CSS
Under Armour安德玛英国官网:美国高端运动科技品牌
2018/09/17 全球购物
Crocs欧洲官网:Crocs Europe
2020/01/14 全球购物
加拿大服装和鞋类零售商:Mark’s
2021/01/04 全球购物
汇智创新科技发展有限公司
2015/12/06 面试题
介绍一下Linux文件的记录形式
2012/04/18 面试题
《与象共舞》教学反思
2014/02/24 职场文书
全国文明单位申报材料
2014/05/31 职场文书
2014年教研室工作总结
2014/12/06 职场文书
Django rest framework如何自定义用户表
2021/06/09 Python