如何从导入的文件中调用函数?例如:
测试:
import test2
def aFunction():
print "hi there"
测试 2:
import test
aFunction()
这给我一个名字错误,说我的函数没有定义。我也试过:
from test import aFunction
和:
from test import *
我也尝试过不在测试中导入 test2。我是从 C++ 转到 Python 的,所以我担心我遗漏了一些对于资深 Python 程序员来说非常明显的东西......
最佳答案
您正在创建循环导入。 test.py
导入 test2.py
尝试导入 test.py
。
不要这样做。当 test2
导入 test
时,该模块还没有完成所有代码的执行;该功能尚未定义:
test
被编译执行,一个空的模块对象被添加到sys.modules
。运行
import test2
行。test2
被编译执行,一个空的模块对象被添加到sys.modules
。运行
import test
行。test
已经作为模块存在于sys.modules
中,该对象被返回并绑定(bind)到名称test
。
下一行尝试运行
test.aFunction()
。test
中不存在这样的名称。引发异常。
定义
def aFunction()
的行从未执行,因为引发了异常。
去掉import test2
这一行,直接运行test2.py
,导入函数就可以正常工作了:
import test
test.aFunction()
关于Python:从导入的文件调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19056240/