python面向对象中的继承关系中,子类调用父类的构造方法有两种方式:父类名.__init__(self,parameter)#注意名字是父类super(thissubclassname,self)__init__(Otherparameters)#注意name是自己的子类,init之后是self以外的引用子程序代码:#-*-coding:utf-8-*-classPerson(object):__metaclass__=typedef__init__(self,name="Jim"):"父类的构造函数,包括初始化属性name"self.name=nameself.flag=Falseprint"Person",self.namedefcall(self):printself.flag,"name:",self.nameself.flag=notself.flagclassProgrammer(Person):__metaclass__=typedef__init__(self):"子类的构造函数,调用的构造函数父类,初始化属性标志"#callMethod1Person.__init__(self,"DOTJAR")print"Programmer"defsetName(self,name="prgrmr"):self.name=nameclassAthlete(Person):__metaclass__=typedef__init__(self,name="prgrmr")PaoZhu"):"子类的构造函数,调用父类的构造函数,并初始化属性flag"#Call方法2注意没有参数super(Athlete,self).__init__(name)打印“运动员”defsetName(self,name="athlete"):self.name=namecoder=Programmer()coder.call()coder.setName("dotjar")coder.call()print("-------------")athlete=Athlete()athlete.call()athlete.setName("LiuXiang")athlete.call()输出为:PersonDOTJARProgrammerFalsename:DOTJARTruename:dotjar
