Python模块作为类的全局实例

时间:2012-09-30 03:03:45

标签: python

  

可能重复:
  getattr on a module

我有一个模块,用于定义一个Manager类。我希望该模块创建此类的实例,并让该模块充当此类的“全局实例”。例如:

class Manager:

    def func(self):
        print('stuff')

instance = Manager()

def func():
    instance.func()

有没有办法让module.x返回module.instance.x? (有点像模块级属性)

更新:this question中的答案只涵盖了我用例的一半(即,它不是重复的,问题的要求是不同的);我还需要模块的属性也可用。例如:

class Manager:

    def __init__(self):
        self.x = 3

    def func(self):
        print('stuff')

sys.modules[__name__] = Manager()

>>> module.func
<func>
>>> module.x
3
>>> module.Manager
AttributeError

1 个答案:

答案 0 :(得分:0)

为什么不让Manager的{​​{1}}返回模块级对象?

__getattr__