python如何创建静态类数据和静态类方法?
Python支持静态数据和静态方法(在C ++或Java的意义上)。
对于静态数据,只需定义一个类属性。要为属性分配新值,就必须在赋值中显式使用类名:
classC:count=0# number of times C.__init__ called
def__init__(self):
C.count=C.count+1
defgetcount(self):
returnC.count# or return self.count
对于任意 c
来说只要 isinstance(c,C)
为真,则 c.count
同样也指向 C.count
,除非被 c
自身,或者从 c.__class__
回到 C
的基类搜索路径上的某个类所重载。
注意:在 C 的某个方法内部,像 self.count=42
这样的赋值将在 self
自身的字典中新建一个名为 "count" 的不相关实例。 想要重新绑定类静态数据名称就必须总是指明类名,无论是在方法内部还是外部:
C.count=314
静态方法是可行的:
classC:@staticmethod
defstatic(arg1,arg2,arg3):
# No "self" parameter!
...
然而,获得静态方法效果的更直接的方法是通过一个简单的模块级函数:
defgetcount():returnC.count
如果您的代码是结构化的,以便为每个模块定义一个类(或紧密相关的类层次结构),那么这就提供了所需的封装。
以上是 python如何创建静态类数据和静态类方法? 的全部内容, 来源链接: utcz.com/z/520661.html