下面的代码会导致打印语句被执行
class C1(object):
print 'I am some code executing in C1'
def method1(self):
print 'I am method1'
def method2(self):
print 'I am method2'
pass
我对此感到惊讶,因为我原以为它只会在类被实例化时执行,谁能解释这背后的想法?
最佳答案
我猜你的意思是它打印'I am some code executing in C1'?
它在创建类对象时打印,在这种情况下,当您加载声明它的文件时会发生这种情况。这也是您放置类变量的地方(可以用作 Python 中其他静态变量的等价物)语言)。
如果您希望在创建实例时执行代码,请将其放入__init__()
。
有关该主题的官方 Python 文档:http://docs.python.org/tutorial/classes.html#class-objects
关于python - python 类中的范围令人惊讶的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5648070/