Python では、オブジェクト wo (ユーザー定義) を介して統合しようとしていますが、wo.obj は別のユーザー定義オブジェクトです。通常のデータ型ではなく、クラスのインスタンスであるとどのように判断すればよいですか?
type(wo.obj)
<class '__main__.test'>
type(wo.obj) is types.InstanceType
False
type(wo.obj) is types.ClassType
False
Python では、オブジェクト wo (ユーザー定義) を介して統合しようとしていますが、wo.obj は別のユーザー定義オブジェクトです。通常のデータ型ではなく、クラスのインスタンスであるとどのように判断すればよいですか?
type(wo.obj)
<class '__main__.test'>
type(wo.obj) is types.InstanceType
False
type(wo.obj) is types.ClassType
False
インスタンスが特定のクラスにあるかどうかを確認するには、isinstanceを使用できます。
mc = MyClass()
isinstance(mc, MyClass) # True
。
注:サブクラスの場合はTrueであり、他にもいくつかの癖があります。同様の質問に対するこの回答を参照してください。
チェックするだけで、インスタンスである「ユーザー定義」クラスに関係なくtype
結果が表示されます。<type 'instance'>
type(notmc).__name__ == 'instance' #True
クラスがインスタンスタイプであるかどうかをチェックすることはそれほど集中的なチェックではないように思われるので、これには何らかの形のヘルス警告が伴うはずだと思います。