首页 > 解决方案 > 调用函数而不导入同一目录中的其他文件函数

问题描述

我想从 im2.py 调用 im1.py 的 want_to_call() 方法测试的类 func1() 和 func1() 将被 im1 的 some_func() 方法调用....您的帮助将不胜感激。

im1.py

from im2 import Test

def some_func(value):
    Test.func1()
    print(value)


def want_to_call():
    return 'called from im2'

some_func("ola")

im2.py

from im1 import want_to_call

class Test:
    def func1():
        variable = want_to_call()
        print(variable)
        print('How do I call want_to_call method in im1')


class Test1:
    def func():
        print('Thanks in advance')

标签: pythondjangopython-3.x

解决方案


不要那样做。

“仅导入模块”的建议有效(如何避免 Python 中的循环导入?)。但是您最好将您的函数放入更多按层次结构排列的文件中。换句话说,打破循环。它将有益于您的代码组织和单元测试,以及您如何看待您的高级问题。

want_to_call()在这里,和的定义func1()属于附加文件,其中包括 im1 和 im2 import

测试应该依赖于目标代码,而不是相反。


推荐阅读