2016-09-29 77 views
0

的全名給定一個嵌套類B得到一個嵌套類

class A: 
    class B: 
     def __init__(self): 
      pass 

ab = A.B() 

我怎樣才能獲得類ab的全稱是什麼?我希望得到像A.B這樣的結果。

+1

你爲什麼嵌套類?你需要什麼名字?你試圖解決的實際問題是什麼? – jonrsharpe

+0

我最強烈的理由之一就是表現出像模塊的良好實踐。例如,我有一個類是所有模塊的信封。我使用它,因爲python沒有完美的模塊解決方案。 第二個原因是它更好的分解問題。 –

+2

這不是一個很好的理由; Python *確實有模塊的解決方案,而且它也是錯誤的模塊。包含'__init __。py'的文件或目錄是模塊。您不必將所有內容都包裝在類中,這不是Java。也許你應該問這個問題。 – jonrsharpe

回答

2

你可以得到的全名,__qualname__,其__class__

>>> ab.__class__.__qualname__ 
'A.B' 

最好用type(這在實例調用__class__):

>>> type(ab).__qualname__ 
+0

非常感謝。 –