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中使用scapy模拟数据包实现arp攻击、dns放大攻击例子
Oct 23 Python
如何处理Python3.4 使用pymssql 乱码问题
Jan 08 Python
利用Python如何生成hash值示例详解
Dec 20 Python
Python爬虫番外篇之Cookie和Session详解
Dec 27 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
Feb 03 Python
NumPy 如何生成多维数组的方法
Feb 05 Python
使用Python向C语言的链接库传递数组、结构体、指针类型的数据
Jan 29 Python
Python人脸识别第三方库face_recognition接口说明文档
May 03 Python
Python绘制股票移动均线的实例
Aug 24 Python
从多个tfrecord文件中无限读取文件的例子
Feb 17 Python
Python编程快速上手——Excel到CSV的转换程序案例分析
Feb 28 Python
安装Anaconda3及使用Jupyter的方法
Oct 27 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基础知识:类与对象(5) static
2006/12/13 PHP
php微信公众平台开发(三)订阅事件处理
2016/12/06 PHP
php json转换相关知识(小结)
2018/12/21 PHP
jQuery 常见学习网站与参考书
2009/11/09 Javascript
js浮点数精确计算(加、减、乘、除)
2013/12/26 Javascript
jquery进行数组遍历如何跳出当前的each循环
2014/06/05 Javascript
javascript面向对象之访问对象属性的两种方式分析
2015/01/13 Javascript
jQuery中empty()方法用法实例
2015/01/16 Javascript
jQuery中bind()方法用法实例
2015/01/19 Javascript
AngularJS入门心得之directive和controller通信过程
2016/01/25 Javascript
如何消除inline-block属性带来的标签间间隙
2016/03/31 Javascript
node.js路径处理方法以及绝对路径详解
2021/03/04 Javascript
js判断文件格式及大小的简单实例(必看)
2016/10/11 Javascript
koa+jwt实现token验证与刷新功能
2019/05/30 Javascript
[02:38]DOTA2英雄基础教程 噬魂鬼
2014/01/03 DOTA
python调用Moxa PCOMM Lite通过串口Ymodem协议实现发送文件
2014/08/15 Python
简单介绍Python中用于求最小值的min()方法
2015/05/15 Python
Python 提取dict转换为xml/json/table并输出的实现代码
2016/08/28 Python
利用Python实现网络测试的脚本分享
2017/05/26 Python
tensorflow 获取模型所有参数总和数量的方法
2018/06/14 Python
Python 20行简单实现有道在线翻译的详解
2019/05/15 Python
Python批量处理csv并保存过程解析
2020/05/16 Python
Python通过Schema实现数据验证方式
2020/11/12 Python
英国男女奢华内衣和泳装购物网站:Figleaves
2017/01/28 全球购物
会计学个人自荐信模板
2013/12/13 职场文书
优秀员工表扬信
2014/01/17 职场文书
2014年教师节活动总结
2014/08/29 职场文书
2014年国庆节寄语
2014/09/19 职场文书
党员作风建设自查报告
2014/10/23 职场文书
老干部工作汇报材料
2014/10/28 职场文书
2014年惩防体系建设工作总结
2014/12/01 职场文书
义诊活动通知
2015/04/24 职场文书
2015年暑假生活总结
2015/07/13 职场文书
pytorch查看网络参数显存占用量等操作
2021/05/12 Python
PostgreSQL通过oracle_fdw访问Oracle数据的实现步骤
2021/05/21 PostgreSQL
Python操作CSV格式文件的方法大全
2021/07/15 Python