Python| 如何在不声明‘global’的情况下使变量为全局变量
我这里有一段代码。我能添加代码的唯一地方是在main_____中的'i=1'这一行之后。这个脚本会执行多次,并且会有一个变量(可能不是'i',也可能是'xy'、'var',或者其他任何名字),每次都会加1。我已经通过在方法上方声明'i'为全局变量来实现这一点,但不幸的是,我不能一直这样做。
有没有什么办法可以让'i'在上述条件下作为全局变量使用呢?
def main______():
try:
i+=1
except NameError:
i=1
main______()
1 个回答
1
如果你想使用一个全局变量,你必须把它声明为全局的。这有什么问题呢?
如果你需要在多次调用之间保存状态,最好使用一个类。
>>> class F():
... def __init__(self):
... self.i=0
... def __call__(self):
... print self.i
... self.i+=1
...
>>> f=F()
>>> f()
0
>>> f()
1
>>> f()
2