从包中实例化导入的“类”时,如何避免使用package.class()声明?

时间:2010-11-05 05:21:38

标签: python class

我是Python的新手,所以我仍然迷失在整个名称空间中。 我已经创建了一个包,其中包含init文件以及classname.py文件。 例如: 来自降落伞进口集装箱,发射器

我试图直接实例化Container类,但它给了我一个错误,所以我不得不将它实例化为container.Container()。我怎么能避免这样做? 基本上,我想要做的是从包中导入一个类,并避免键入包名称和/或文件名。 在此先感谢,如果问题不够明确,请告诉我。

UPDATE 我的结构是: - 降落伞      - init .py

-- container.py
    Serves as a controller, i'd say, instancing, calling and glueing all the other parts    together.

-- sparkles.py
    Has two classes: Sparkle and Sparkles. Sparkle is a single element, with only one    property so far, and Sparkles serves as a collection.  Sparkles() belongs to the Emitter, and Sparkle() belongs to Sparkles().

-- emitter.py 
    Emitter could be seen as the user entity. It has a name and an uid, it belongs to a Container and the Container belongs to it.

现在,从包外面我正在调用Container并传递一些参数,以及Container实例并根据需要分配参数。 我的印象是,这不是我需要做的最好的方法,即:创建一个由发射器拥有的闪光系列。

2 个答案:

答案 0 :(得分:2)

from module import Class
classInst = Class()

如果您的班级位于module.py

,这将有效

答案 1 :(得分:2)

不要将该类放在自己的文件中。将ContainerEmitter直接放在parachute.py中。

然后你可以做

from parachute import Container, Emitter

import parachute

container = parachute.Container()

这基本上归结为“Python不是Java所以为了获得最佳结果,不要像对待它一样”;)