python如何创建静态类数据和静态类方法?

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

回到顶部