源碼:class?TestBaseClassFather():
????def?__init__(self,name,age):
????????self.name?=?name
????????self.age?=?age
class?TestBaseClassExtendChild(TestBaseClassFather):
????def?__init__(self,name,age,major):
????????super(TestBaseClassExtendChild,?self).__init__(name,age)
????????self.major?=?major此時(shí)報(bào)錯(cuò):bash-3.2$?python?base_1/3_class.py?
Traceback?(most?recent?call?last):
??File?"base_1/3_class.py",?line?175,?in?<module>
????testMulitExtend()
??File?"base_1/3_class.py",?line?164,?in?testMulitExtend
????basChild?=?TestBaseClassExtendChild("zhangsan",23,"shuxue")
??File?"base_1/3_class.py",?line?153,?in?__init__
????super(TestBaseClassExtendChild,?self).__init__(name,age)
TypeError:?must?be?type,?not?classobj接著寫(xiě)上object:class?TestBaseClassFather(object):
????'''
????此處必須寫(xiě)上繼承自object
????'''
????def?__init__(self,name,age):
????????self.name?=?name
????????self.age?=?age
class?TestBaseClassExtendChild(TestBaseClassFather):
????def?__init__(self,name,age,major):
????????super(TestBaseClassExtendChild,?self).__init__(name,age)
????????self.major?=?major執(zhí)行結(jié)果正常:['__class__',?'__delattr__',?'__dict__',?'__doc__',?'__format__',?'__getattribute__',?'__hash__',?'__init__',?'__module__',?'__new__',?'__reduce__',?'__reduce_ex__',?'__repr__',?'__setattr__',?'__sizeof__',?'__str__',?'__subclasshook__',?'__weakref__',?'age',?'major',?'name']
<class?'__main__.TestBaseClassExtendChild'>
True
{'age':?23,?'name':?'zhangsan',?'major':?'shuxue'}
子類(lèi)使用super調(diào)用父類(lèi)初始化方法,父類(lèi)一定要繼承自object嗎
神經(jīng)性bug
2017-01-23 22:31:11