在类方法中,使用Classname.Varname和cls.Varname中的变量有什么区别?
答案 0 :(得分:1)
效果取决于您是否在继承:
class Parent:
@classmethod
def use_cls(cls):
return cls.__name__
@classmethod
def use_classname(cls):
return Parent.__name__
class Child(Parent):
pass
现在在外壳中:
>>> p, c= Parent(), Child()
>>> p.use_cls()
'Parent'
>>> p.use_classname()
'Parent'
通过子类,我们得到不同的结果:
>>> c.use_cls()
'Child'
>>> c.use_classname()
'Parent'