2016-09-29 17 views
0

入れ子になったクラスB考える:入れ子になったクラスの完全な名前を取得します

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

ab = A.B() 

どのように私はabのクラスの完全な名前を取得することができますか?私はA.Bのような結果を期待しています。

+1

をなぜあなたは、ネストクラスですか?あなたはその名前のために何が必要ですか?あなたが解決しようとしている実際の問題は何ですか? – jonrsharpe

+0

私の最大の理由の一つは、モジュールのための良い練習のようなショーです。例えば、私はすべてのモジュールのための封筒である1つのクラスを持っています。私はPythonがモジュールのための完璧なソリューションを持っていないので、それを使用します。 第2の理由は、問題の分解が良好です。 –

+2

それは大きな理由ではありません。 Python *はモジュールの解決策を持っていますが、それは誤ったモジュールです。 '__init __。py'を含むファイルまたはディレクトリがモジュールです。クラス内のすべてをラップする必要はありません。これはJavaではありません。たぶんあなたはその質問に代わりに質問していたはずです。 – jonrsharpe

答えて

2

あなたは、その__class__の、完全修飾名、__qualname__を得ることができる:

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

好ましくは(インスタンス上で__class__を呼び出す)typeを使用して:

>>> type(ab).__qualname__ 
+0

ありがとうございます。 –

関連する問題