>  기사  >  백엔드 개발  >  Python 상속 문제에 대한 간략한 분석

Python 상속 문제에 대한 간략한 분석

高洛峰
高洛峰원래의
2017-03-02 16:01:281319검색

이 글은 주로 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 중국어 웹사이트를 주목하세요!



성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.