import math
a = 1
def my_func():
print('don\'t downvote')
my_func()
我相信函数调用my_func()位于为函数my_func()创建的本地名称空间中-已准备好进行更正。名称[[a是否包含在为math模块创建的同一全局命名空间中?
foo.py
。导入模块时,将为foo
创建一个新的全局名称空间,该名称空间包含(其中包括)三个名称:math
,指的是math
模块`my_func
,指的是您的功能a
,指的是1my_func
包含任何自由变量,它们将always引用foo
的全局名称空间,而不是引用它的名称空间。
math
模块具有其自己的全局名称空间。 (“全局”确实不是一个好术语;每个模块都有其自己的模块级名称空间。)Python中唯一的“全局”名称空间是内置名称空间,可从所有模块访问。