作為補充知識.另外,以后版本定在python3,很多舊的寫法了解就好了.
- 經典類
沒有繼承的類,
注意:如果經典類被作為父類典奉,子類調用父類的構造函數時會出錯叉寂。【TypeError: must be type, not classobj】
#基類(經典類)
class Person:
def __init__(self):
print "Hi, I am a person. "
#子類
class Student(Person):
def __init__(self):
super(self.__class__, self).__init__()
if __name__ == "__main__":
student = Student()
#出錯啦窃植!TypeError: must be type, not classobj
經典類已經被python3移除.在python2中,通過class直接定義的是經典類,通過繼承object的是新式類
新式類
每個類都繼承于一個基類领铐,可以是自定義類或者其它類,如果什么都不想繼承宋舷,那就繼承于object
如果想用super調用父類的構造函數绪撵,請使用新式類!
#python2
#基類(新式類)
class Person(object):
def __init__(self):
print "Hi, I am a person."
#子類
class Student(Person):
def __init__(self):
super(self.__class__, self).__init__()
if __name__ == "__main__":
student = Student()
#coding:utf-8
#父類
class A:
def spam(self):
print('A.spam')
#子類
class B(A):
def spam(self):
print('B.spam')
super().spam() # Call parent spam()
python3里面祝蝠,直接用class 定義的是新式類音诈。。绎狭。