Python:类的继承
来源:互联网 发布:centos 鼠标失效 编辑:程序博客网 时间:2024/05/18 03:15
最近师弟在学习python语言,对于类,继承等基本概念不是很了解,所以写这篇文章来详细的讲解一下继承的概念和在python中的使用。
a 单继承
定义一个时间类,带默认参数
class mytime(object): def __init__(self,hour=21, \ minute=13, \ second=50): self.hour = hour self.minute = minute self.second = second def __str__(self): return '__str__ hour:minute:second = %02d:%02d:%02d' \ %(self.hour,self.minute,self.second) def get_hour(self): return self.hour def get_minute(self): return self.minute def get_second(self): return self.second def print_time(self): print 'hour:minute:second = %02d:%02d:%02d' %(self.hour,self.minute,self.second)
说明: 构造函数 init(self,hour=21, minute=13, second=50) 带默认参数的定义方式 ;
用于输出的函数 str
得到某属性值的方法 get_xxxx 输出属性值的方法 print_time
a.2、定义日期时间类,继承时间类的属性和方法
class mydatetime(mytime): def __init__(self,year = 2016,mounth = 1,day = 1, \ hour=21, minute=13,second=50): super(mydatetime,self).__init__(hour,minute,second) self.year = year self.mounth = mounth self.day = day def __str__(self): return '__str__ year--mounth--day = %02d--%02d--%02d' \ %(self.year,self.mounth,self.day) def __del__(self): """ __del__ mydatetime destroyed """ print "__del__ mydatetime destroyed" def print_date(self): print 'year-mounth-day = %04d-%02d-%02d' \ %(self.year,self.mounth,self.day)# self.print_time()
说明: mydatetime 继承 mytime 的属性值,这里mydatetime(子类),mytime(父类)
构造函数 init(self,year = 2016,mounth = 1,day = 1, hour=21, minute=13,second=50) 带默认参数的定义方式 ,注意要通过 super初始化父类属性值;
用于输出的函数 str
输出属性值的方法 print_date
a.3 测试
if __name__ == '__main__': t0 = mytime() print t0 t0.print_time() print t0.get_hour() print "\n" print "--"*10," mydatetime da:" da = mydatetime(minute=40) print da da.print_time()
b、多重继承
b.1 定义父类 classA,classB
class classA(object): def __init__(self): print('init action in father class A')class classX(object): def __init__(self): print('init action in father class X')
b.2、SubClassB 继承 classA
class SubClassB(classA): def __init__(self): print('init action in subclass B') super(SubClassB,self).__init__()
2.3 subclassC继承subClassB
class SubClassC(SubClassB): def __init__(self): print('init action in subclass C') super(SubClassC,self).__init__()
2.4、测试
if __name__ == '__main__': print "\n" print "--"*10," SubClassC b:" b = SubClassC()
c、多重继承
c.1 定义两个基本类 classA 和 classX
class classA(object): def __init__(self,a='classA'): self.a = a print('init action in father class A') def print_a(self): print self.aclass classX(object): def __init__(self,x='classX'): self.x = x print('init action in father class X') def print_x(self): print self.x
c.2 SubClassX 类继承自 classA 和 classX
class SubClassX(classA,classX): def __init__(self,a='SubClassX:a',x='SubClassX:x'): print('init action in subclass X') super(SubClassX,self).__init__()# classX.__init__(self) self.a = a self.x = x def print_SubX(self): self.print_a() self.print_x()
测试
if __name__ == '__main__': print "\n" print "--"*10," SubClassX x:" sx = SubClassX() sx.print_SubX()
上面就是python基本的类的继承。
阅读全文
0 0
- Python类的继承
- python类的继承
- Python 类的继承
- Python 类的继承
- Python类的继承
- Python类的继承
- python ---类的继承
- Python类的继承
- Python:类的继承
- python 类的继承
- Python 类的继承
- Python:类的继承
- Python--类的继承
- Python中类的继承
- Python类的继承示例
- python知识-类的继承
- Python 类的多继承
- Python中类的继承
- 基带丢失、IMEI丢失、手机无信号--高通通用解决办法
- .Net Mvc View页面引擎Razor使用笔记-持续更新
- Java设计模式-单例模式
- 资源限定符
- 电量低于15% 闪光灯仍会正常打闪
- Python:类的继承
- -lz -lrt -lm -lc都是什么库
- 常用的Dialog
- springboot+thymeleaf 实现thymeleaf自定义方言系统 自定义标签, cms系统搭建(二)
- 小店开张
- python 常用函数收集
- IDEA自动编译设置
- Unity有限状态机
- 1055-only_full_group_by 分组查询报错解决方案