Python初心者必見!isinstance関数の使い方と実例について徹底解説
1. Pythonのisinstance関数とは?
Pythonのisinstance関数は、指定したオブジェクトが指定した型またはクラスのインスタンスであるかどうかを確認するための関数です。
具体的には、isinstance関数は2つの引数を受け取り、最初の引数が2番目の引数のインスタンスである場合はTrueを、そうでない場合はFalseを返します。
2. 基本的なisinstanceの使い方
では、具体的にどのようにisinstance関数を使用するのか、基本的な使い方を見ていきましょう。
以下に示すのは、数字の5がint型(整数)のインスタンスであるかを確認するコードです。
ソースコード例
1 2 |
num = 5 print(isinstance(num, int)) |
このコードを実行すると、5は整数型のインスタンスであるため、結果はTrueとなります。
出力結果
True
KindleUnlimited会員であれば、全ての本をご覧頂けます。 リストとラムダ式を理解すれば、Pythonプログラミングの世界が変わる 第1版
3. 複数の型を指定したisinstanceの使い方
次に、isinstance関数で複数の型を指定する方法を見てみましょう。
もしも、あるオブジェクトが整数型か浮動小数点型のどちらかであるかを調べたいときは、以下のようにタプルで型を指定します。
ソースコード例
1 2 |
num = 5.0 print(isinstance(num, (int, float))) |
このコードを実行すると、5.0は浮動小数点型のインスタンスであるため、結果はTrueとなります。
出力結果
True
4. カスタムクラスとisinstanceの使い方
さて、isinstance関数は組み込み型だけでなく、自分で定義したクラスのインスタンスかどうかを確認するのにも使用することができます。
以下に示すのは、自作のクラスを作り、そのインスタンスかどうかを確認する例です。
ソースコード例
1 2 3 4 5 |
class MyClass: pass my_instance = MyClass() print(isinstance(my_instance, MyClass)) |
このコードを実行すると、my_instanceはMyClassのインスタンスであるため、結果はTrueとなります。
出力結果
True
5. isinstanceとtypeの違いについて
ここまでPythonのisinstance関数について見てきましたが、同じように型をチェックする関数にtypeがあります。
では、この二つは何が違うのでしょうか。
主な違いは、isinstanceがサブクラスのインスタンスもTrueと判断する点にあります。
これに対して、type関数は厳密にクラスが一致する場合のみTrueと判断します。
この違いを以下の例で見てみましょう。
ソースコード例
1 2 3 4 5 6 7 8 9 10 |
class ParentClass: pass class ChildClass(ParentClass): pass child = ChildClass() print(isinstance(child, ParentClass)) print(type(child) is ParentClass) |
このコードを実行すると、isinstanceはTrueを返し、typeはFalseを返します。
なぜなら、childはParentClassのサブクラスのインスタンスであるため、isinstanceはそれをTrueと判断します。
しかし、typeはクラスが厳密に一致しないためFalseと判断します。
出力結果
True
False
まとめ
この記事では、Pythonのisinstance関数について学びました。
isinstance関数は、あるオブジェクトが特定のクラスのインスタンスかどうかを判断するために使用されます。
また、isinstanceとtypeの違いについても解説しました。
これにより、より効率的に型チェックを行うことが可能になります。
最後まで読んで頂き、ありがとうございました。少しでもお役にたてたなら幸いです!