Python中的类属性、实例属性和查找顺序(C3算法)

Python中的类属性、实例属性、查找顺序(mro查找)

一、类属性和实例属性

属性是定义在类内部的一些变量或方法

直接上例子

class A:
    name = 'A'
    def __init__(self):
        self.name = 'obj'

a = A()
print(a.name) # obj
class A:
    name = 'A'
    def __init__(self):
         pass

a = A()
print(a.name) # A

属性查询顺序是从底向上,上述代码在打印a.name时,先在实例中查找,找不到的话再去类属性中查找。

二、多继承时的查找顺序(MRO算法)

python2.3开始到现在的python3Python的属性搜索算法统称为了C3算法,一大堆公式,自己百度吧。

猜你喜欢

转载自blog.csdn.net/weixin_43901214/article/details/106911849