在函数内部声明全局

Declaring global inside a function

最近,我不得不编写如下所示的函数:

fruits = []
def foo():
    global fruits
    ...

global fruits 到底是做什么的?如果以前有人问过这个问题,我很抱歉,但我找不到这样的问题。

它告诉编译器绑定名称应该在模块范围而不是本地范围内执行。如果您只是简单地改变对象(例如 fruits.append('apple')),它就没有用。