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 回答