我必须承认我没想到以下代码可以工作(我的一个同事的代码示例):
def foo():
li.append(3)
li = [1, 2]
foo()
print(li) # gives [1, 2, 3]
我的问题是:
ps。列出的代码示例使用Python 3.6.1。
global
关键字仅在我们要进行赋值或更改全局变量时才需要。访问方法或打印变量不需要global
关键字全局关键字是允许用户修改当前作用域之外的变量的关键字。
全局关键字规则:
您的代码,您没有更改或分配'li'值
2。这里列表是在调用foo()之前定义的,因此它可以正常工作。假设如果在定义li之前调用foo(),它将抛出类似NameError的错误:未定义名称'li']