Skip to main content
 首页 » 编程设计

Python 正确的全局用法

2025年05月04日12unruledboy

我的代码目前看起来像:

import modules 
class 
functions 
main code block (if __name__ == "__main__":) 

在整个程序中我想添加一个计数器。 我的想法是添加

global counter 
counter = 0 

然后通过程序添加到计数器。问题是,当我开始在函数中添加计数器时,我将全局命令放在哪里并不重要,它不会重新调整变量。

放置全局命令的正确位置在哪里(即程序开始等)以及实现此目的的正确方法是什么(是使用全局命令还是可能通过使用类?

非常感谢,

请您参考如下方法:

您需要将全局命令放在每个 需要重新绑定(bind)全局变量的函数中。

您不需要将它放在只读取全局变量或改变值但不重新绑定(bind)它的函数中。您不需要将其放在函数之外。

整数是不可变的,因此您需要在更新计数器的任何函数中使用 global counter。如果您使用可变对象,那么您根本不需要使用 global。例如

class Counter: 
    def __init__(self): 
       self.value = 0 
counter = Counter() 
 
def someFunction(): 
    counter.value += 1  

甚至使 someFunction 成为类的方法。

global 关键字(以及较新版本的 Python 上的 nonlocal)仅影响当前范围。