class A:
@classmethod
def s(cls):
print("1")
class B:
b = A
def s(self):
self.b.s()
B().s()
def fn():
print("hello")
dn = fn
dn()
旧式类 class A:
pass
新式类 class A(object):
pass
现在所说的,提倡的一般就是新式类
继承多个:
class A(B,C,D):
方法重叠则从左到右找
菱形继承:类似于广度优先遍历
A.__mro__ 判断先后继承是哪个
mro算法判断出来的
一般不采用菱形继承
以上说的是新式类中的继承优先级
旧式类中继承优先级使用深度优先遍历
2 super是子类中使用父类方法,同时也是新式类中才有的
3 global 和 nonlocal
nonlocal 是python3中的新增内容