导入文件后的Python名称错误

时间:2013-07-13 21:16:20

标签: python macos python-2.7

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

这就是文件(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的目录中,则会出错,所以我知道它正在获取正确的文件。我错过了什么?

1 个答案:

答案 0 :(得分:2)

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

如果您只导入 lab1,那么请将该模块中的名称作为模块对象的属性引用:

lab1.gcd(10, 3)

或者您需要从模块中导入名称​​:

from lab1 import gcd

在当前模块中创建相同功能的引用。另一种拼写方式是:

import lab1.gcd as gcd