首页 > 代码库 > python 类 六:继承自动寻找父类

python 类 六:继承自动寻找父类


本系列博客(python 类) 的部分例子来自于 <<python 核心编程 第二版>>


前面我们谈到 python 继承,是可以引用父类的__init__方法的 ,并在此基础上添加子类自己的特殊的属性的设定,形成子类自己的__init__  构造函数。


在这种方法中,必须显示的指出父类的名字。

#coding:utf-8

class p(object):
    def __init__(self,nm):
        self.name  = nm

class c(p):
    def __init__(self,nm,idnum):
        p.__init__(self,nm)   #引用父类的__init__方法,必须显示的指出父类的名字  
        self.id  = idnum

c1 = c(‘john‘,11)
print c1.name,c1.id


运行结果是:








如果父类修改了名字,那么子类的代码也要修改这个名字。就是耦合度就高了。


python提供了一种方法,可以自动的找到父类的名字


super()方法,只要传递子类的名字和self作为参数,就可以自动的找到父类的名字。

这样,不论父类的名字怎么修改,都不会影响子类的调用了。


#coding:utf-8

class p(object):
    def __init__(self,nm):
        self.name  = nm

class c(p):
    def __init__(self,nm,idnum):
        super(c,self).__init__(nm)
        self.id  = idnum

c1 = c(‘john‘,11)
print c1.name,c1.id



运行结果是:


[root@puppet-master-231-test eg_4]# python2.7 class_inherit_demo_5.py
john 11


本文出自 “linux与网络那些事” 博客,请务必保留此出处http://khaozi.blog.51cto.com/952782/1858707

python 类 六:继承自动寻找父类