Python导入troub

2024-09-27 23:29:01 发布

您现在位置:Python中文网/ 问答频道 /正文

从特定模块导入类时遇到一些问题。类位于模块my_module1.my_module2.my_module3.my_module4.my_module5.my_module6.my_module7中

这个代码有效

import my_module1.my_module2.my_module3.my_module4.my_module5.my_module6.my_module7

这意味着我要去上课

^{pr2}$

但事实并非如此

from my_module1.my_module2.my_module3.my_module4.my_module5.my_module6.my_module7 import MyClass

这个也没有

将mymodule1.mymodule2.mymodule3.mymodule4.mymodule5.mymodule6.mymodule7导入为myname

两人都说这个错误

AttributeError: 'module' object has no attribute my_module7'

这让我完全不知所措,我已经为此工作了几个星期了。有什么建议吗?在

编辑-我不能改变结构不幸,因为它是由我使用的系统强加


Tags: 模块代码fromimportmymyclass事实module1
2条回答

看起来像是循环导入。在

戈登·麦克米兰说: 如果两个模块都使用“导入”形式的导入,则循环导入是可以的。当第二个模块想要从第一个模块中获取一个名称(“from module import name”),并且导入处于顶层时,它们将失败。这是因为第一个模块中的名称还不可用,因为第一个模块正忙于导入第二个模块。在

我想你可能会首先考虑另一种设计(重新设计你的模块分解,使之更平坦),但这不是你的问题,请尝试:

import my_module1.my_module2.my_modu...<etc>
my_name = my_module1.my_module2.my_modu...<etc>
my_name.MyClass

模块是python中的第一类对象,因此可以用变量对它们进行别名。在

相关问题 更多 >

    热门问题