2011-07-24 47 views
0

我希望控制一個MyClass類的實例化時全球範圍內管理類實例化,它必須是唯一的,並能在全球範圍內引用它關於Python

# myclass.py 
class MyClass(): 
    def __init__(self): 
     pass 

    def hello(self): 
     return 'world' 

class MyManager(): 
    def __init__(self): 
     self.instance = None 

    def create(self): 
     self.instance = MyClass 

manager = MyManager 

這樣做的原因是因爲與im一起工作的類在初始化時有一些依賴關係,這些依賴關係在模塊導入時不存在。 (對於上面的示例的緣故,我已經離開了依賴)

# main.py 
import myclass 

myclass.manager.create 

instance = myclass.manager.instance 

hello = instance.hello 

現在,這是給了一個錯誤:

AttributeError: class MyManager has no attribute 'instance' 

進出口比較新的蟒蛇,和大多已被使用它用於線性腳本。我錯過了什麼?

回答

3

你從來沒有真正打過電話myclass.manager.create(),因爲你忘記了parens。添加它們。您可能打算撥打MyManager()MyClass()以便實例化它們。

+0

謝謝,這工作。 – mXed