在我的主python文件中,我只是加载数学模块和一个自己的模块(称为funcs.py)。最后,我从刚加载的模块中运行一个函数。
ssh
funcs.py文件如下所示:
import math
from funcs import *
RetentionTime(1,2,3,4)
这导致以下Nameerror:
NameError:name' math'未定义
在python shell中,我可以使用像math.atan(...)这样的命令而没有问题。我做错了什么?
感谢。
答案 0 :(得分:0)
# test.py
y = 5
def f(x):
print(x+y)
此处f
将从最内层范围绑定名为y
的对象,在本例中是test.py
的模块范围。如果如下,
y = 5
def g():
y = 10
def f(x):
print(x+y)
return f
此处y
中的f
绑定为对象10
。在您的情况下,RetentionTime
在其自己的模块范围内编译,并且无法访问调用者的范围。因此,将import math
添加到与RetentionTime
相同的模块中。