私はPythonで教科書を読んでいて、新しいスタイルのクラスの違いをカバーしています。古典的なクラスを使用するインタプリタではPython 2.xで次のコードを守ってください。Python 2.Xでisinstance(nonnewstyle、object)がtrueを返すのはなぜですか?
class C: pass
X = C()
isinstance(X, object) #returns true
isinstance(C, object) #returns true
(、1は2.X内のオブジェクトクラスから派生明示しなければならない新しいスタイルのクラスを使用するには)
だから、オブジェクトクラスから派生していないオブジェクト(古典クラスの場合のように)は、オブジェクトのインスタンスになることができますか? 3.Xと2.Xの場合、何が起こっているのですか?
これは重複した質問かどうかは、すべてが技術的にオブジェクトであることを既に知っていましたが、私は、isinstanceの結果をあきらかにするのではなく、Python自体の設計において、
**すべて**はオブジェクトです。 'isinstance(オブジェクト、オブジェクト)'も真です。 –
より有用なチェックは 'isinstance(C、type)'または 'issubclass(C、object)'でしょう。 – jonrsharpe
[インスタンスは "オブジェクト"ですが、クラスは "オブジェクト"のサブクラスではありません:どうすれば可能ですか?](https://stackoverflow.com/questions/9699591/instance-is-an-object- object-how-is-this-po) – MSeifert