gpt4 book ai didi

python - python中的导入语句困惑

转载 作者:太空宇宙 更新时间:2023-11-04 09:20:37 25 4
gpt4 key购买 nike

我想在一个通用的 python 文件中导入一些文件,然后在我需要在当前模块中导入模块时包含该文件。如果使用 from x import y,这当然会导致错误并重新导入,但是当使用“正常”导入语句时,我最终会得到很长的指令语句,例如:

x = importModule.directoryName1.directoryName2.moduleName.ClassName()

而我想执行以下操作:

x = importModule.ClassName()

但正如我之前所说,这样做:

from importModule.directoryName1.directoryName2.moduleNam import ClassName

在一般文件中不起作用,因为我在 ClassName 中包含了 importModule。

所以,我基本上想知道是否有关于此的任何东西(类似于 using 语句,比如 C++ 中的语句,也许?)

最佳答案

听起来你有递归导入(importModule 指的是 moduleName,而 moduleName 指的是 importModule. 如果你重构,你应该可以使用

from importModule.directoryName1.directoryName2.moduleName import ClassName

要重构,您可以更改在 moduleName 中导入内容的顺序,以便 ClassName 的类定义出现在 importModule 之前进口;只要每个文件在尝试导入另一个模块之前定义了另一个模块所需的引用,事情就会成功。

另一种重构方法:您始终可以在使用它的函数中导入 ClassName;只要在导入 moduleName 之前不调用该函数,就可以了。

不过,

最好的重构方法是将一些类或引用移动到它们自己的模块中,这样您就不会遇到 A 导入 B B 导入A。这将解决您的问题,并使以后的事情更容易维护。

关于python - python中的导入语句困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3165881/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com