M S*_*M S 14 python static block
我对python比较陌生我想为一个类只运行一次代码块.就像java中的静态块一样.
例如:
class ABC:
execute this once for a class.
Run Code Online (Sandbox Code Playgroud)
python中有没有这样的选项?
在java中我们这样写.在加载类时,只对类执行一次.不是每个对象创建
public class StaticExample{
static {
System.out.println("This is first static block");
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢
Cri*_*ole 14
要做到这一点,只需将代码直接放在类定义下(与类的函数定义并行).
直接在类中的所有代码在类的命名空间中创建该类型时执行.例:
class Test:
i = 3
y = 3 * i
def testF(self):
print Test.y
v = Test()
v.testF()
# >> 9
Run Code Online (Sandbox Code Playgroud)
只是为您填写最后一点信息:您的方法函数def也正在执行(就像它们在全局命名空间中定义一个函数时"执行"),但它们不会被调用.恰好是执行a def没有明显可见的结果.
Python的面向对象非常聪明,但需要一点时间才能理解它!坚持下去,这是一种非常有趣的语言.
>>> class MyClass():
... print "static block was executed"
...
static block was executed
>>> obj = MyClass()
>>>
Run Code Online (Sandbox Code Playgroud)
有关Python中的静态变量/函数的更多信息,请参见此处:Python中的静态类变量
| 归档时间: |
|
| 查看次数: |
4912 次 |
| 最近记录: |