类与类间有这么一个关系:
class Mymeta(type):
n = 1
class A:
n = 2
class B(A, metaclass=Mymeta):
n = 3
1、查找属性的调用方是对象
obj = B()
print(obj.n)
obj首先从自身名称空间查找,无果则去obj的基类(B类)的名称空间查找,n=3; 若B类中也没有n,则去A类中找;A类也没有则报错
对象的属性查找顺序:对象本身-->基类-->父类-->object类,不会查到元类上
2、查找属性的调用方是类
print(B.n)
B类首先从自身查找,无果则去父类中找,最后元类中找