【发布时间】:2016-10-01 11:13:02
【问题描述】:
我是python新手,我们如何引用一个与本地变量同名的全局变量。
spam = 'global spam'
def scope_test():
spam = 'local spam'
print(spam)
# access global spam and print or assign to the local spam
# print(global.spam)
# local.spam = global.spam (something like this)
scope_test()
【问题讨论】:
-
你不能,也没有意义。您应该避免全局状态和名称阴影。
-
你可以
print(globals()["spam"])但不要。 -
或者
import sys; print(sys.modules[__name__].spam),但这仍然不是一个好主意 -
你不能定义
def scope_test(spam): ... return spam并运行spam = scope_test(spam) -
@furas:OP 不希望函数修改全局
spam。
标签: python