2013-07-28 23 views
6

コードに内部クラスが必要で、外部クラスのインスタンスを作成せずにこの内部クラスのインスタンスを作成したいとします。
どうすればいいですか? Javaでは内部クラスを静的に定義できますが、内部クラスをPythonで静的にする方法はわかりません。私は方法のために私達が@staticmethodデコレータを使用できることを知っている。Pythonの静的内部クラス

class Outer: 
    def __init__(self): 
     print 'Instance of outer class is created' 

    class Inner: 
     def __init__(self): 
      print 'Instance of Inner class is created' 
+1

好奇心ではありませんなぜこの必要がありますか? –

+0

エミールH:すべての例ですか? :Dネストは広く使われているので、 "ブラックボックス"コードを保持したまま、カプセル化やエンドユーザー向けに提供するインターフェイス/定数/ヘルパーをより詳細に制御できます –

答えて

6

クラスInnerは、Outerクラスの定義時に定義され、後でそのクラス名前空間に存在します。だからちょうどOuter.Inner()

1

特別な操作は必要ありません。

instance = Outer.Inner() 
0

これはあなたが探しているものかわかりません。クラス変数またはグローバル(モジュール)変数として作成することができます

class Outer: 
    def __init__(self): 
     print 'Instance of outer class is created' 

    class Inner: 
     def __init__(self): 
      print 'Instance of Inner class is created' 

    i = Inner() # as class varaible 

i1 = Outer.Inner() # as module varaible 
関連する問題