Pythonでは、isinstance関数を使用してオブジェクトが特定のクラスのインスタンスであるかどうかを確認できます。しかし、クラスの型ではなくクラス名の文字列を使用してこれを行いたい場合はどうすればよいでしょうか。

以下に、クラス名の文字列を使用してisinstanceを行う方法を示します。

class A: pass
class B(A): pass
class C(B): pass

c_inst = C()

def isinstance_string(variable, string):
    cls = globals().get(string, None)
    if inspect.isclass(cls):
        return isinstance(variable, cls)
    return False

ok = isinstance_string(c_inst, 'A')

上記のコードでは、isinstance_string関数を定義しています。この関数は、変数と文字列を引数に取り、文字列がグローバルスコープで定義されたクラスの名前である場合、そのクラスのインスタンスであるかどうかを確認します。

この方法を使用すれば、クラス名の文字列を使用してisinstanceを行うことが可能になります。ただし、注意点として、この方法ではチェック対象のクラスがグローバルスコープで定義されている必要があります。

以上が、Pythonでisinstanceをクラス名の文字列で使用する方法についての説明です。この情報がPythonのコーディングに役立つことを願っています。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です