Heim  >  Artikel  >  Backend-Entwicklung  >  Eine kurze Analyse der Python-Vererbungsprobleme

Eine kurze Analyse der Python-Vererbungsprobleme

高洛峰
高洛峰Original
2017-03-02 16:01:281317Durchsuche

Dieser Artikel stellt hauptsächlich relevante Informationen zur eingehenden Analyse von Python-Vererbungsproblemen vor. Es ist sehr gut, einen Blick darauf zu werfen.

Es gibt den folgenden Code

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)

Dann lautet das laufende Ergebnis des Codes wie folgt:

F:\python_code\test>python class_init.py
init in c1
init in p1
f1 in p2
f1 in p2
11
22
2

Bezüglich des laufenden Codeprozesses habe ich Folgendes: Ich rufe p1.__init__() in der Funktion __init__ von c1 auf und führe dann jedes Mal die Funktion c1.f1() aus p1.f1(). Das f1(), das in p1 läuft, ist auch c1.f1(). Warum?

Ursachenanalyse:

p1.__init__(self,a,b)

self in dieser Codezeile ist Das Objekt von c1. Das an p1 übergebene Selbst ist also auch c1.

Der obige Inhalt stellt Ihnen das Python-Vererbungsproblem anhand des Codes vor. Ich hoffe, er wird Ihnen hilfreich sein!

Weitere Artikel zu einer kurzen Analyse von Python-Vererbungsproblemen finden Sie auf der chinesischen PHP-Website!



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn