蟒蛇|如何在不将其初始化为“全局”的情况下将此变量设为全局变量

时间:2009-10-19 19:45:52

标签: python global

我这里有这个代码。我可以添加代码的唯一部分是在'i = 1'行之后的main_中。这个脚本将执行多次并且会有一些变量(可能不是'i',可能是'xy','var',任何东西),每次递增1。我已经通过声明'i'作为方法之外的全局来实现这一点,但不幸的是,我无法保持这种方式。

有没有办法让'i'在上述参数中作为全局变量?

def main______():
    try:
        i+=1
    except NameError:
        i=1 
main______()

1 个答案:

答案 0 :(得分: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