[英]import module : global variable within function
有两个py文件。 实用程序
def add_sum():
print(x + 3)
测试文件
from util import *
x=3
add_sum()
当我运行 test.py 时,出现错误:
Traceback (most recent call last):
File "test.py", line 45, in <module>
add_sum()
File "util.py", line 10, in add_sum
print(x + 3)
NameError: name 'x' is not defined
变量x是全局的,为什么函数无法到达x并引发错误?
Python 的“全局变量”只是定义它们的模块的全局变量。这是设计使然 - 只有在确实无法避免它们时才应该使用全局变量,因为它会使代码更难理解、测试和维护。
在您的情况下,正确的方法是明确地将x
传递给您的函数:
# util.py
def add_sum(x):
return x + 3
和
# test.py
# NB: star imports are evil too, for the very same reasons
from util import add_sum
x=3
print(add_sum(x))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.