class a:
def set(self, value):
print value+1
def set2(self, value):
self.set(value)
class b(a):
def set(self, value):
print value
if __name__ == '__main__':
i = b()
i.set2(10)
, 나는 의미 10
과 같은 결과를 얻었다 파이썬 방법 재정 규칙, b.set()
호출했지만, 왜 안 a.set()
그것은 EXPLICT self
호출 된 이후?실행될 때
P. 따라서 'a'클래스에 set() 메서드가 없더라도이 코드는 여전히 작동합니까? 그러나 그것은 좋은 코딩 규칙입니까?
'self'는 실제로 b 객체 그 자체입니다. –
@avasal하지만 속성 오류가 발생하지 않았습니다. – j5shi
'b' 객체를 어떻게 전달하는지 보셨습니까? 당신은 :'b'가'set2'를 호출하지만,'a'의'set2'가 호출되었으므로,'set2'가 어떻게'set'을 호출하는지 알 수 있습니까? 'self.set (value)'사용하기. 'self'는'b' 타입이기 때문에 당연히'b'''set'을 호출합니다. – dmg