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中的新增内容
本文探讨了Python中新式类与旧式类的区别,包括它们的定义方式、继承机制的不同,以及如何使用super方法调用父类方法。文中还提到了Python3中新引入的nonlocal关键字的作用。
248

被折叠的 条评论
为什么被折叠?



