9

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

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

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

3 に答える 3

8

クラス Inner は、クラス Outer の定義中に定義され、その後、そのクラス名前空間に存在します。だからただOuter.Inner()

于 2013-07-28T09:30:40.883 に答える
1

特別なことをする必要はありません。直接参照してください:

instance = Outer.Inner()
于 2013-07-28T09:30:20.790 に答える
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
于 2013-07-28T09:30:50.307 に答える