Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
导入文件后出现Python名称错误_Python_Macos_Python 2.7 - Fatal编程技术网

导入文件后出现Python名称错误

导入文件后出现Python名称错误,python,macos,python-2.7,Python,Macos,Python 2.7,我在Mac上玩Python,它是默认安装,版本为2.7.2。出于某种原因,当我在当前目录中导入文件时,它会成功导入,但当我尝试调用文件中的函数时,它会告诉我:NameError:name'gcd'未定义 这是文件中的内容(lab1.py): 在提示下,我只需键入importlab1。它成功导入。值得注意的是,如果我不在lab1.py目录中,它会出错,因此我知道它得到了正确的文件。我缺少什么?您需要通过导入的全局名称引用模块中的名称 如果只导入lab1,则将该模块中的名称引用为模块对象上的属性:

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

这是文件中的内容(
lab1.py
):


在提示下,我只需键入
importlab1
。它成功导入。值得注意的是,如果我不在lab1.py目录中,它会出错,因此我知道它得到了正确的文件。我缺少什么?

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

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

lab1.gcd(10, 3)
或者您需要从模块导入名称:

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

import lab1.gcd as gcd

哦,是的。这是有道理的。由于某种原因,我不记得上次遇到python时的情况。
import lab1.gcd as gcd