이 글은 주로 Python 상속 문제에 대한 심층 분석에 관한 정보를 소개하고 있어 매우 좋습니다. 관심 있는 친구들은 한 번 살펴보시기 바랍니다.
다음 코드를 참조하세요.
class p1: def __init__(self,a,b): print("init in p1") self.a1=a self.b1=b self.f1() def f1(self): print("f1 in p1") class c1(p1): def __init__(self,a,b,c=2): print("init in c1") p1.__init__(self,a,b) self.c1=c self.f1() def f1(self): print("f1 in p2") class c2(c1): pass c=c2(11,22) print(c.a1) print(c.b1) print(c.c1)그러면 코드의 실행 결과는 다음과 같습니다.
F:\python_code\test>python class_init.py init in c1 init in p1 f1 in p2 f1 in p2 11 22 2실행 프로세스에 대해 코드에서 다음과 같은 질문이 있습니다. c1의 __init__ 함수에서 p1.__init__()가 호출된 다음 c1.f1() 함수가 매번 실행됩니다. p1을 실행하는 함수는 없습니다. f1(). c1.f1()에서 f1()을 어떻게 실행할 수 있나요? 왜?
원인 분석:
p1.__init__(self,a,b)이 코드 줄의 self는 c1의 객체입니다. 따라서 p1에 전달된 self도 c1입니다. 위 내용은 Python 상속 문제를 코드를 통해 소개하는 내용이 도움이 되기를 바랍니다. 파이썬 상속 문제에 대한 간략한 분석과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!