在Python 3中使用加载模块中的数学运算

时间:2016-04-11 14:59:07

标签: python python-3.x

在我的主python文件中,我只是加载数学模块和一个自己的模块(称为funcs.py)。最后,我从刚加载的模块中运行一个函数。

ssh

funcs.py文件如下所示:

import math
from funcs import *

RetentionTime(1,2,3,4)

这导致以下Nameerror:

  

NameError:name' math'未定义

在python shell中,我可以使用像math.atan(...)这样的命令而没有问题。我做错了什么?

感谢。

1 个答案:

答案 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相同的模块中。