2011-07-24 3 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 

この理由はあるためであります私が扱っているクラスは、初期化時にモジュールのインポート時に存在しないいくつかの依存関係を持っています。

AttributeError: class MyManager has no attribute 'instance' 

イムのpythonでは比較的新しい、そして主にそれを使用している:

# main.py 
import myclass 

myclass.manager.create 

instance = myclass.manager.instance 

hello = instance.hello 

さて、これはエラーを与えている(上記の例のために、私は、依存関係を残してきました)線形スクリプトの場合。私は何が欠けていますか?

答えて

3

括弧を忘れたので、実際にはmyclass.manager.create()に電話をかけることはありません。それらを追加してください。あなたはおそらくMyManager()MyClass()もインスタンス化するために呼び出すことを意味しました。

+0

ありがとうございました。 – mXed

関連する問題