0

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

4

1 回答 1

2

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

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

lab1.gcd(10, 3)

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

from lab1 import gcd

在当前模块中创建对同一函数的引用。另一种拼写是:

import lab1.gcd as gcd
于 2013-07-13T21:19:02.653 回答