今日在维护 teelebot 代码的时候,有两个模块间需要相互导入。

也就是,在 模块A 中 需要导入 模块B ,而在 模块B 中也需要导入 模块A 。此种情况下,其中一个在导入时会为空,会报错无法导入。

后来查阅资料,此种情况也可以称为交叉引用。Python在特定情况下可以相互引用,避免报错的办法有以下这些:

1.将 import 放入函数内部;

2.将 import 放到 moudle 底部;

3.在 module 的顶部引入,不使用from,而是直接用 import

以上方法我试过后,对于我的项目都不管用。。

最后采取了一个取巧的办法,把 模块A模块B 合并为一个模块。。

=_=

当然,最好的方法是尽量避免相互引用。