代码之家  ›  专栏  ›  技术社区  ›  Jorge Guberte

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

  •  0
  • Jorge Guberte  · 技术社区  · 14 年前

    我对Python还不太熟悉,所以我仍然沉浸在整个名称空间中。 我创建了一个包,其中包含in it文件,还有一个classname.py文件,显然包含了这个类。 例如: 从降落伞导入容器,发射器

    我试图直接实例化类容器,但它给了我一个错误,所以我不得不将其作为Container.Container()来实例化。我怎样才能避免这样做呢? 基本上,我想做的是从包中导入一个类,避免键入包名和/或文件名。 提前谢谢,如果问题不够清楚,请告诉我。

    更新 我的结构是: -- 初始 .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并传递一些参数,容器实例并根据需要分发参数。

    2 回复  |  直到 10 年前
        1
  •  2
  •   aaronasterling    14 年前

    不要把类放在它自己的文件中。投入 Container Emitter parachute.py .

    你就可以了

    from parachute import Container, Emitter
    

    import parachute
    
    container = parachute.Container()
    

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

        2
  •  2
  •   Scott    14 年前
    from module import Class
    classInst = Class()