2011-11-08 10 views
7

イムはいくつかのPythonのヘルプ文書を通過すると、次のコードに出くわした:でisinstance(オブジェクト、タイプ)

isinstance(object,type) 

誰もが上記の文で平均入力しないかを説明できますか?

おかげで、

Vineel
+0

それはコンクリートのサンプルコードの一部、またはそれ以上の疑似コード風(たとえば署名)ましたか?または、より良い、文脈を示す。スニペットは悲しいことに両方の意味があります。 – delnan

+0

疑問がある場合は、ドキュメント –

答えて

11

typeは、intまたはstrとして、タイプ/クラスを表すオブジェクトでなければなりません。例えば、isinstance(1, int)Trueと評価され、isinstance(sys.stdin, str)Falseと評価されます。 class Fooを定義した場合は、Fooもタイプオブジェクトです。

編集:@delnanノートとして、type自体はisinstance('foo', type)がfalseの間、strは、タイプであるため、そのisinstance(str, type)が真である、また、Pythonでのタイプです。 objectもPythonの型であり、型階層のルートです。

+0

@vineelを読んでください:答えを更新しました。 –

+0

thanQ ...それは私をクリア:) – vineel

0

objectのタイプがtypeであるかどうかを確認します。 type変数はクラスである必要があります。

0
isinstance(object, classinfo) 

戻り真オブジェクト引数がCLASSINFO引数の、またはその(直接、間接または仮想)サブクラスのインスタンスである場合。また、classinfoがタイプオブジェクト(新しいスタイルのクラス)であり、オブジェクトがそのタイプのオブジェクトまたはその(直接的、間接的または仮想的な)サブクラスである場合はtrueを返します。 objectがクラスインスタンスまたは指定された型のオブジェクトでない場合、関数は常にfalseを返します。 classinfoがクラスオブジェクトでもタイプオブジェクトでもない場合、クラスオブジェクトまたはタイプオブジェクトのタプルであるか、他のそのようなタプルを再帰的に含むことがあります(他のシーケンスタイプは受け入れられません)。 classinfoがクラス、型、またはそのようなタプルのタプルでない場合、TypeError例外が送出されます。

バージョン2.2で変更されました:タイプ情報のタプルのサポートは でした。引用

http://docs.python.org/library/functions.html#isinstance

関連する問題