2013-07-13 126 views
0

我在我的Mac上玩Python,它是默认安装版本2.7.2。出于某种原因,当我在当前目录中导入文件时,它成功导入,但当我尝试调用一个函数的文件中,它给了我:NameError: name 'gcd' is not defined导入文件后Python名称错误

这是什么文件(lab1.py)内:

def gcd(x, y): 
    if x % y == 0: 
     return y 
    else: 
     return gcd(y, x % y) 

def f(x): 
    return x*x 

在提示时,我只是键入import lab1。它成功导入。值得注意的是,如果我不在lab1.py目录中,它会出错,所以我知道它正在获取正确的文件。我错过了什么?

回答

2

您需要通过您导入的全局名称引用模块中的名称。

如果导入只是lab1,届时提及的名字该模块中的模块对象的属性:

lab1.gcd(10, 3) 

,或者您需要从导入名模块:

from lab1 import gcd 

在当前模块中创建相同功能的参考。另一种拼写是:

import lab1.gcd as gcd 
+0

哦,哦。这就说得通了。出于某种原因,我不记得我上次遇到python时所遇到的情况。 –

相关问题