Python| 如何在不声明‘global’的情况下使变量为全局变量

-2 投票
1 回答
1395 浏览
提问于 2025-04-15 15:11

我这里有一段代码。我能添加代码的唯一地方是在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

撰写回答