2011-01-06 30 views

答えて

0
>>> class a: 
... pass 
... 
>>> class b(a): 
... pass 
... 
>>> c = b() 
>>> d = a() 
>>> type(c) == type(d) 
True 

タイプ()タイプのオブジェクトを返します。 aは実際のクラスであり、タイプではありません

+0

あなたの答えは、OPの質問に矛盾しているようです。私はちょうどタイプチェックに向かい始めているので、私はどんなコメントにも興味があります。あなたはタイプ(c)==タイプ(d)と確信していますか? –

+0

'type(c)'と 'type(d)'は 'class instance'型を返します。したがって、それらは等しくなければなりません。ここではisinstanceを使うべきだと思います。 'class x:pass'と' z = x() 'を作成することでこれを確認できますが、' class x'と 'class a'の間に継承はありませんが、' type(z)== type(c ) 'はTrueを返します。 – smwikipedia

+0

上記はPython 2.7.8です。 Python 3.4.1では、 'type(c)'と 'type(d)'は 'class 'type'を返します。これは' True'の結果にもつながります。しかし、 'c'と' d'は同じ型であるとは言いません。 – smwikipedia

関連する問題