13.11 继承
继承描述了基类的属性如何"遗传"给派生类,一个子类可以继承它的基类的任何属性,不管是数据属性还是方法
举个例子如下:P是一个没有属性的简单类。C从P继承而来(因此是它的子类),也没有属性:
class P(object): # parent class 父类
# !/usr/bin/env python
# -*- coding: utf-8 -*-
class P(object):# parent class 父类
pass
class C(P):#child class 子类
pass
c = C() # instantiate child 实例化子类
print c
print type(c)
C:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a5.py
<__main__.C object at 0x024F7C30>
<class '__main__.C'>
# !/usr/bin/env python
# -*- coding: utf-8 -*-
class P(object):# parent class 父类
pass
class C(P):#child class 子类
pass
c = C() # instantiate child 实例化子类
print c
print type(c)
print '--------------------'
print c.__class__
print C.__bases__ # child's parent class(es) 子类的父类
# !/usr/bin/env python
# -*- coding: utf-8 -*-
class P(object):# parent class 父类
'P class'
def __init__(self,a):
print a
class C(P):#child class 子类
pass
c = C('yyy') # instantiate child 实例化子类
现在所创建的P有文档字符串(__doc__)
# !/usr/bin/env python
# -*- coding: utf-8 -*-
class P(object):# parent class 父类
'P class'
def __init__(self,a):
print a
class C(P):#child class 子类
pass
c = C('yyy') # instantiate child 实例化子类
p=P(666)
print p
print p.__doc__
print p.__class__ # class that created us 显示 p 所属的类名
print P.__bases__ # parent's parent class(es) 父类的父类
print P.__doc__
C 没有声明__init__()方法,然而在类 C 的实例 c 被创建时,还是会有输出信息。原因在于 C 继
承了 P 的__init__()。__bases__元组列出了其父类 P。需要注意的是文档字符串对类,函数/方法,
还有模块来说都是唯一的,
所以特殊属性__doc__不会从基类中继承过来。
C:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a5.py
555
<class '__main__.C'>
(<class '__main__.P'>,)
None