开发者学堂课程【Python 入门 2020年版:继承的注意事项】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/639/detail/10386
继承的注意事项
内容介绍:
一、Python 里的继承的特点
一、Python 里的继承的特点
class A(object
)
:
def demo_a(self):
print('我是A类里的方法demo_a ' )
def foo(self):
print('我是
A
类里的foo方法')
class B(object):
def demo_b(self):
print('我是B类里的方法demo_b ‘)
def foo(self):
print('我是B类里的foo方法')
# Python里允许多继承
class
C(A,B)
: # 如果不写父类,Python3以后,默认继承自object
pass
c
=
C()
c.demo_a
()
c.demo_b
()
#如果两个不同的父类有同名方法,有一个类属性可以查看方法的调用顺序
c.foo()
print(c._mro_) # (, , , )
如果想让 C 能用 A 的方法可以让 A 做 C 的父类,如过还想使用 B 的方法可以让A、B 同时做 C 的父类,Python 里允许多继承。
多继承可能会出现一些问题,如果两个不同的父类有同名方法,有一个类属性可以查看方法的调用顺序。
class A(object):
pass
class B(object):
def foo(self):
print('我是 B 类里的 foo 方法’)
class c(A):
def foo(self):
print('我是 c 类里的 foo 方法')
class D(B):
pass
class x(D,C) :
p
ass
x
=
X
()
x.foo()
print(x.
_
_mro__)
在此代码中 X 会以深度有限的顺序先查找 D 之后再查找 C。