A brief analysis of python inheritance issues

高洛峰
Release: 2017-03-02 16:01:28
Original
1338 people have browsed it

This article mainly introduces relevant information on in-depth analysis of Python inheritance issues. It is very good. Friends who are interested should take a look.

The following code is included:

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)
Copy after login

Then the running result of the code is as follows:

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

Regarding the running process of the code, I have the following questions. In the __init__ function of c1, p1.__init__() will be called, and then the c1.f1() function will be run every time. There is no function that runs p1.f1(). How can f1() run in p1? c1.f1(). Why?

Cause analysis:

p1.__init__(self,a,b)

self in this line of code is The object of c1. So the self passed to p1 is also c1.

The above content introduces the python inheritance problem to you through the code. I hope it will be helpful to you!

For more articles related to a brief analysis of python inheritance issues, please pay attention to the PHP Chinese website!


Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!