在类方法中,使用Classname中的变量有什么区别。 vs cls

时间:2019-07-14 09:00:25

标签: python

在类方法中,使用Classname.Varname和cls.Varname中的变量有什么区别?

1 个答案:

答案 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'