如何将Python模块拆分为多个文件?

2024-04-19 13:35:34 发布

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


Tags: python
3条回答

我认为你问题的核心是你不想

a.py to imports a1
if
a1.py imports a.

不过,这在python中是完全可以的。但是,请确保在具有多个模块的系统中,除了函数/类之外没有任何代码,因为运行的顺序将根据导入位置、导入的内容、月球的阶段等而有所不同

How can I split this file with despite a circular dependency?

选项1:中断循环:将基类放在自己的模块中,将派生类放在其他模块中,并将在这些派生类上操作的函数放在另一个模块中。


选项2:忽略周期,只将模块/包导入全局命名空间,即:

食物比

class Bar:
    "Frobs Quuxen"

不应该作为from foo import Bar导入,只需使用import foo,并根据需要在函数中引用foo.Bar

模式:

class A(...):
   ...

模式1.py:

import modA
class A1(modA.A):
   ...

模式2.py:

import modA
class A2(modA.A):
   ...

模式:

from modA import A
from modA1 import A1
from modA2 import A2

即使一个“进程”a1和a2你应该是好的,因为多亏了duck输入,你不需要导入实际的名称。

相关问题 更多 >