静态类成员python

所以我使用静态类成员,所以我可以在同一个类的类方法和静态方法之间共享数据(只有该类的1个实例化).我明白这个很好,但我只是想知道静态成员何时初始化?是进口吗?在上课的第一次使用?因为我要从多个模块调用这个类的静态成员(因此超过1个import语句).访问静态方法的所有模块是否共享相同的静态数据成员?如果我的主客户端删除我的类的实例,然后重新创建它(不完全终止或重新导入的东西),我的数据成员将被保留?
它们将在类定义时间初始化,如果将类作为模块的一部分导入,将在导入时发生.这假设一个“静态”类成员定义样式如下:

class Foo:
    bar = 1

print Foo.bar # prints '1'

请注意,这是一个静态类成员,不需要实例化该类.

导入语句将执行一次模块的内容,无论执行多少次或何时执行.

是的,静态成员将被访问它们的任何代码共享.

是的,如果您删除类型为该类的对象,则类的静态成员将被保留:

# Create static member
class Foo:
    bar = 1

# Create and destroy object of type Foo
foo = Foo()
del foo

# Check that static members survive
print Foo.bar # Still prints '1'
翻译自:https://stackoverflow.com/questions/3506150/static-class-members-python

转载注明原文:静态类成员python