class B(A): #这里和上面程序不同。B继承了A
def __init__(self):
print "bbb"
if __name__=="__main__":
a = A()
b = B()
#运行结果
aaa
bbb
这段程序中,类B跟前面的那段有一点不同,class B(A):,这样写就表明了B相对A的关系:B是A的子类,B从A继承A的所有东西(子承父业)。
但是,看官发现了没有,运行结果一样。是的,那是以为在B中尽管继承了A,但是没有调用任何A的东西,就好比儿子从老爸那里继承了财富,但是儿子一个子也没动,外界看到的和没有继承一样。
#!/usr/bin/env python
#coding:utf-8
class A:
def __init__(self):
print "aaa"
class B(A):
def __init__(self):
#print "bbb"
A.__init__(self) #运行继承的父类
if __name__=="__main__":
a = A()
b = B()
#运行结果
aaa
aaa
这回运行结果有了变化,本来b=B()是运行类B,但是B继承了A,并且在初始化的构造函数中,引入A的构造函数,所以,就运行A的结果相应结果了。
下面把最开头的那端程序用子类继承的方式重写,可以是这样的:
#!/usr/bin/env python
#coding:utf-8
class Person:
def __init__(self, name, lang, email):
self.name = name
self.lang = lang
self.email = email
def author(self):
return self.name
"""
class Programmer:
def __init__(self, name, lang, email, system, website):
self.name = name
self.lang = lang
self.email = email
self.system = system
self.website = website
def pythoner(self):
pythoner_list = [ self.name, self.lang, self.email, self.system, self.website ]
return pythoner_list
"""
class Programmer(Person): #继承父类Person
def __init__(self, name, lang, email, system, website):
Person.__init__(self,name,lang,email) #将Person.__init__()的功能继承到这里










