具有类和导入的模块

Jor*_*ell 0 python python-module

如果我在一个模块中使用一个类,我怎么能在它的实例中使它成为"顶级"?

结构体:

/package
    __init__.py
    /subPackage
        __init__.py
        module.py
        subModule.py
    /theScript.py
Run Code Online (Sandbox Code Playgroud)

python theScript.py

TheScript的来源:

import package.subPackage.module
package.subPackage.module.method()
Run Code Online (Sandbox Code Playgroud)

/package/subPackage/module.py的来源:

class module:
    def method(self): pass
moduleInstance = module()
Run Code Online (Sandbox Code Playgroud)

我猜我问什么是我会怎么做它,这样我就不必做package.subPackage.module.moduleInstance.method()和能package.subPackage.module.method()

我知道我可以删除类和实例,但我更喜欢这个类,因为如果有人想要不需要直接修改我们的源代码就更容易进行子类化,但如果我最终必须使用方法而不是类/方法在模块中.

Sve*_*ach 6

以下是标准库中的random模块如何解决此问题:

_inst = Random()
seed = _inst.seed
random = _inst.random
uniform = _inst.uniform
triangular = _inst.triangular
...
Run Code Online (Sandbox Code Playgroud)

对我来说似乎是合理的解决方案.当然,缺点是您必须手动保持方法列表同步,但如果您忘记添加方法名称,最糟糕的事情就是一条错误消息,告诉您确切缺少的内容.