2013-07-28 61 views
6

我的代碼需要有一個內部類,我想在不創建外部類的實例的情況下創建此內部類的實例。
如何在python中這樣做?在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

Emil H:比如說一切? :D嵌套被廣泛使用它可以讓你更好地控制封裝和你爲最終用戶提供的界面/常量/助手,同時仍然保留「黑盒子」代碼 –

回答

6

內定義的類的類外的定義過程中,它在同級別的命名空間存在之後。所以只需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