2016-03-29 7 views
1

私は__str__()__repr__()対のスレッドを読んで、そして、どこかここに(私が今どこに覚えることができない)私は、次のコードを見た:Python:クラス名?クラスタイプ?

def __repr__(self): 
    return "<%s>" % (self.__class__.__name__) 

私はクラスを持っているので、もしこれは明らかに、クラス名を出力します

Class A: 
    def __repr__(self): 
     return "<%s>" % (self.__class__.__name__) 

これは、角カッコが表示されないようにしていますか? .__name__ビットを取り出すと<__main__.A>と表示されますので、ちょっと混乱しています.AはA型で、名前だけでなく、__main__ビットがどこから来ているのかわかりません__main__(まだ! - 私はif __name__ == "__main__"について知っており、それを使用しています)

したがって、クラス名とクラスタイプの違いは何ですか?

また、私が今までにSAから学んだPythonについてほとんど知っているすべてを追加したいと思っていました。ここでは難しい質問でも答えがありました(サブクラスのスーパークラスの変数にアクセスするのは私の最新のgoogleでした。もう一度数字が1つありました!ありがとうございました!)

答えて

0

Pythonインタプリタシェル内からコードを実行しているようです。この場合、__main__はシェルから来ています。

サンプルコード:タイプVSクラス名で

>>> class A: 
...  def __repr__(self): 
...   return "<%s>" % (self.__class__.__name__) 
... 
>>> A() 
<A> 
>>> class A: 
...  def __repr__(self): 
...   return "<%s>" % (self.__class__) 
...   
... 
>>> A() 
<__main__.A> 

、あなたはこの記事を参照することができます - >Python : terminology 'class' VS 'type'

関連する問題