首页 > 解决方案 > 函数中使用的全局变量是否需要在 def 块之前定义?

问题描述

我必须承认我没想到下面的代码可以工作(我的同事的代码示例):

def foo():
    li.append(3)
li = [1, 2]
foo()
print(li) # gives [1, 2, 3]

我的问题是:

附言。Python 3.6.1 用于列出的代码示例。

标签: appendpython-3.6

解决方案


  1. 由于列表是在调用 foo() 之前定义的,因此没有错误。
  2. global仅当我们要进行赋值或更改全局变量时才需要关键字。访问方法或打印变量不需要global关键字

推荐阅读