我正在尝试创建一个包含几个类的包(mypackage),但希望包含在多个文件中的类。
例如,我希望class_a.py包含一个名为ClassA的类,等等......
因此,我想要以下文件结构:
.../mypackage
__init__.py
class_a.py
class_b.py
...
但是,我想按如下方式加载和使用该包:
load mypackage
a = mypackage.ClassA()
我需要做什么(我在__init__.py中假设)才能实现这一目标。目前,它使用“mypackage.class_a.ClassA()”?
进行操作答案 0 :(得分:2)
让您__init__.py
从其他文件导入所有ClassA
,ClassB
等。
然后您就可以import mypackage
并使用mypackage.ClassA
或from mypackage import ClassA
并将其用作不合格的ClassA
。
有点背景。
import foo
语句查找foo.py
,然后查找foo/__init__.py
,并将该文件中定义的名称加载到当前名称空间中。把你需要的任何东西都放到__init__.py
。
此外,take a look at __all__
top-level variable如果您倾向于from mypackage import *
。
答案 1 :(得分:0)
在__init__.py
中,添加以下内容:
from class_a import ClassA
from class_b import ClassB
del class_a
del class_b