调用函数但不导入同一目录中的其他文件函数

时间:2019-03-26 13:04:56

标签: python django python-3.x

我想从im2.py中调用im1.py的want_to_call()方法Test的类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')

1 个答案:

答案 0 :(得分:2)

不要那样做。

“仅导入模块”的建议有效(How to avoid circular imports in Python?)。 但是最好将函数放到按层次结构排列的更多文件中。 换句话说,打破循环。 这将对您的代码的组织有益, 和您的单元测试 以及如何考虑您的高级问题。

这里,want_to_call()func1()的定义属于im1和im2 import的附加文件。

测试应取决于目标代码,而不是相反。