【发布时间】:2016-01-05 13:24:30
【问题描述】:
def call(arg):
return a+arg
def caller():
a=1
call(2)
caller()
它返回:未定义全局名称'a'
【问题讨论】:
-
你没有问一个明确的问题。这就是 Python 的工作方式。
-
我需要从调用函数访问调用者作用域
-
python 不是这样工作的。
-
将
a作为参数传递给调用,例如def call(arg, second_arg). -
拥有函数的全部意义在于不能混淆调用者的上下文。