python中的静态内部类

时间:2013-07-28 09:26:38

标签: python oop static inner-classes static-classes

我的代码需要有一个内部类,我想创建这个内部类的实例而不创建外部类的实例。
如何在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'

3 个答案:

答案 0 :(得分:7)

类Inner在类Outer的定义期间定义,之后它存在于其类命名空间中。所以只需Outer.Inner()

答案 1 :(得分:1)

你不需要做任何特别的事情。请直接参考:

instance = Outer.Inner()

答案 2 :(得分: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