Python:从导入的文件调用函数

发布于 2021-01-29 17:28:09

如何从导入的文件中调用函数?例如:

测试:

import test2
def aFunction():
    print "hi there"

测试2:

import test
aFunction()

这给我一个名称错误,说我的函数未定义。我也尝试过:

from test import aFunction

和:

from test import *

我也尝试过不要在测试中导入test2。我正在从C ++入手Python,所以我担心我缺少一些对资深Python编程人员显而易见的东西…

关注者
0
被浏览
51
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您正在创建循环导入。test.py进口test2.py试图进口test.py

    不要这样 在test2导入时test,该模块尚未完成所有代码的执行。该功能尚未定义:

    • test被编译并执行,并且一个空模块对象被添加到中sys.modules

    • 该行import test2运行。

      • test2被编译并执行,并且一个空模块对象被添加到中sys.modules

      • 该行import test运行。

      • test已作为模块存在于其中sys.modules,此对象返回并绑定到名称test

      • 下一行尝试运行test.aFunction()。中没有这样的名称test。引发异常。
    • 定义行def aFunction()永远不会执行,因为引发了异常。

    删除该import test2行,然后test2.py 直接 运行,然后导入该函数即可正常进行:

    import test
    
    test.aFunction()
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看