2013-07-28 20 views
6

Kodumun bir iç sınıfa sahip olması gerekiyor ve dış sınıfın örneğini oluşturmadan bu iç sınıfa ait örneği oluşturmak istiyorum.
Python'da nasıl yapılır? Java'da içsel sınıfı statik olacak şekilde tanımlayabiliriz, ancak python'da içsel bir sınıfa nasıl statik oluşturacağımı bilmiyorum. Yöntemler için @staticmethod dekoratörünü kullanabileceğimizi biliyorum.Python'da statik iç sınıf

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

Merak etme neden buna ihtiyacınız var? –

+0

Emil H: örneğin her şey için mi? : D Yuvalama yaygın olarak kullanılır, kapsülleme üzerinde daha fazla kontrol sağlar ve "kara kutu" kodunu korurken son kullanıcı için hangi arabirimi/sabitleri/yardımcıları sağlarsınız –

cevap

6

İç tanımlanır sınıf ve daha sonradan kendi sınıfı ad alanında var: Sadece doğrudan ona bakın. Yani sadece Outer.Inner().

1

Özel bir şey yapmanıza gerek yoktur. Dış grubun tanımına sırasında

instance = Outer.Inner() 
0

Aradığınız şeyin bu olduğundan emin değilsiniz. Bunu sadece sınıf değişkeni olarak veya global (modül) değişken olarak oluşturabilirsin

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