首页 > 解决方案 > 通过类的名称访问类的属性与类方法有什么区别?

问题描述

在一次采访中,有人问我以下两种访问类属性的方法有什么区别:

class Klass:
    x = 10

    @staticmethod
    def foo():
        return Klass.x

    @classmethod
    def bar(cls):
        return cls.x

classmethodPS:我知道和之间的区别staticmethod

标签: pythonpython-3.x

解决方案


Using cls would also work with inheritance,

class Klass2(Klass):
  x = 5

print(Klass2().foo())
10
print(Klass2().bar())
5

Though there might be more differences


推荐阅读