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 Django模板的使用方法(图文)
Nov 04 Python
python实现批量图片格式转换
Jun 16 Python
使用selenium模拟登录解决滑块验证问题的实现
May 10 Python
numpy.array 操作使用简单总结
Nov 08 Python
python中栈的原理及实现方法示例
Nov 27 Python
python turtle 绘制太极图的实例
Dec 18 Python
python3 简单实现组合设计模式
Jul 02 Python
深入浅析Python代码规范性检测
Jul 31 Python
python实现跨年表白神器--你值得拥有
Jan 04 Python
Python如何telnet到网络设备
Feb 18 Python
opencv实现图像平移效果
Mar 24 Python
Python进行区间取值案例讲解
Aug 02 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后台多用户权限组思路与实现程序代码分享
2012/02/13 PHP
浅析虚拟主机服务器php fsockopen函数被禁用的解决办法
2013/08/07 PHP
Yii使用CLinkPager分页实例详解
2014/07/23 PHP
PHP实现表单提交时去除斜杠的方法
2016/12/26 PHP
php xhprof使用实例详解
2019/04/15 PHP
PHP+MySQL实现在线测试答题实例
2020/01/02 PHP
IE8 chrome中table隔行换色解决办法
2010/07/09 Javascript
javascript中使用css需要注意的地方小结
2010/09/01 Javascript
JS.elementGetStyle(element, style)应用示例
2013/09/24 Javascript
Jquery中国地图热点效果-鼠标经过弹出提示层信息的简单实例
2014/02/12 Javascript
解决js下referer兼容各大浏览器的方法
2014/11/03 Javascript
浅谈JavaScript的Polymer框架中的事件绑定
2015/07/29 Javascript
基于Node.js实现nodemailer邮件发送
2016/01/26 Javascript
基于jquery实现的鼠标悬停提示案例
2016/12/11 Javascript
jquery uploadify隐藏上传进度的实现方法
2017/02/06 Javascript
JS字符串长度判断,超出进行自动截取的实例(支持中文)
2017/03/06 Javascript
微信小程序页面滑动屏幕加载数据效果
2020/11/16 Javascript
JS实现的简单表单验证功能完整实例
2017/10/14 Javascript
js实现多张图片每隔一秒切换一张图片
2019/07/29 Javascript
JavaScript基础之this和箭头函数详析
2019/09/05 Javascript
javascript头像上传代码实例
2019/09/28 Javascript
JavaScript实现世界各地时间显示
2020/09/07 Javascript
Vue 组件注册全解析
2020/12/17 Vue.js
[49:59]KG vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python使用xmlrpc实例讲解
2013/12/17 Python
python使用cookielib库示例分享
2014/03/03 Python
Python实现的简单算术游戏实例
2015/05/26 Python
Python实现扩展内置类型的方法分析
2017/10/16 Python
Django之模型层多表操作的实现
2019/01/08 Python
django自带调试服务器的使用详解
2019/08/29 Python
Python enumerate函数遍历数据对象组合过程解析
2019/12/11 Python
就业表自我评价分享
2014/02/06 职场文书
小学生关于梦想的演讲稿
2014/08/22 职场文书
签证扫盲贴,41个常见签证知识,需要的拿走
2019/08/09 职场文书
使用CSS实现黑白格背景效果
2022/06/01 HTML / CSS
MySQL解决Navicat设置默认字符串时的报错问题
2022/06/16 MySQL