可以填 cls,但要用 类方法 或 静态方法 的场景,写法不同
类方法(@classmethod)
Python
复制
class Parent:
@classmethod
def info(cls):
print(cls)
print("Parent class:", cls) #这里cls也是子类
class Child(Parent):
@classmethod
def info(cls):
print(cls)
super(Child, cls).info() # 这里的 cls 就是类本身
静态方法(@staticmethod)
静态方法没有 cls/self,不能用 super,需显式写类名。
打印:
<class 'main.Child'>
<class 'main.Child'>
总结:
super(Class, self) —— 用于 实例方法
super(Class, cls) —— 用于 类方法
静态方法无隐式第一参数,不能用 super。
不管是实例还是类,传递到父类都不变,都是子类/子实例对象