在Python中可以有静态类变量或方法吗?需要什么语法才能做到这一点?
在类定义中声明的变量,而不是在一个方法中声明的是类或静态变量:>>> class MyClass:
... i = 3
...
>>> MyClass.i
3
作为@ millerdev指出,这创建了一个class- level i变量,但这与任何实例级别的i变量不同,所以您可以使用>>> m = MyClass()
>>> m.i = 4
>>> MyClass.i, m.i
>>> (3, 4)
这与C ++和Java不同,但与C#没有太大区别,静态成员不能通过对实例的引用来访问。
#class-objects)。
@Steve Johnson已经回答了有关[静态方法< / a>,也记录在Python库参考手册的[内置函数中< / A>class C:
@staticmethod
def f(arg1, arg2, ...): ...
@beidy推荐使用静态方法classmethod,方法如下接收类的类型作为第一个参数,但我仍然有点模糊这种方法比静态方法的优势。如果你也是,那么这可能没有关系。
Conrad表示静态变量声明在类定义里面,而不是在一个方法里面是类或“静态”变量:>>> class Test(object):
... i