这两个不同代码块有撒区别,最后的结果是一样的啊
class A(object):
def __init__(self, name):
self.name=name
print ("name:", self.name)
def getName(self):
return 'A ' + self.name
class B(A):
def __init__(self, name):
print ("hi")
self.name = name
def getName(self):
return 'B '+self.name
if __name__=='__main__':
b=B('hello')
print( b.getName())
#di二ge
class A(object):
def __init__(self, name):
self.name=name
print ("name:", self.name)
def getName(self):
return 'A ' + self.name
class B(A):
def __init__(self, name):
super(B, self).__init__(name)
print ("hi")
self.name = name
def getName(self):
return 'B '+self.name
if __name__=='__main__':
b=B('hello')
print (b.getName())
PHP中文网2017-04-18 10:23:28
어떻게 최종 결과가 같을 수 있나요?
첫 번째 결과:
hi
B hello
두 번째 결과:
('name:', 'hello')
hi
B hello
두 번째는 상위 클래스의 A.__init__("hello")를 호출하는 반면, 첫 번째는 상위 클래스의 __init__(self, name) 함수를 재정의합니다.