rank vote view answer url
47 1561 970000 16 url

Python 中类的静态变量

在 Python 中如何实现类的静态变量或者方法


在类定义中声明且在方法里未声明的是类的静态变量

>>> class MyClass:
...     i = 3
...
>>> MyClass.i
3

这样做会生成一个类级别的 i 变量, 而不是依赖于某个实例的 i 变量, 所以你可以:

>>> m = MyClass()
>>> m.i = 4
>>> MyClass.i, m.i
>>> (3, 4)

和 C++ 和 Java 不一样, 这种静态变量不能通过实例来访问有点像 C#.

可以看一看 what the Python tutorial has to say on the subject of classes and class objects

static methods 的相关文档 "Built-in Functions" in the Python Library Reference

class C:
    @staticmethod
    def f(arg1, arg2, ...): ...

有人提到使用 classmethod 作为静态方法, 它接受类的类型作为第一个参数, 但是我依然对这种方法的有点疑问, 如果你也是, 那可能没什么关系