如何使用没有子包的多个文件创建python包

时间:2013-05-07 17:50:26

标签: python python-module

我正在尝试创建一个包含几个类的包(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()”?

进行操作

2 个答案:

答案 0 :(得分:2)

让您__init__.py从其他文件导入所有ClassAClassB等。

然后您就可以import mypackage并使用mypackage.ClassAfrom 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