0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

python isinstance について

Posted at

Python の isinstance(item, list) について解説

isinstance() とは?

Python の isinstance() は、指定したオブジェクトが特定の型(クラス)であるかどうかを判定するための組み込み関数です。

基本構文

isinstance(object, classinfo)
  • object:判定したいオブジェクト
  • classinfo:確認したい型(クラス)

この関数は、objectclassinfo のインスタンスであれば True を、そうでなければ False を返します。

isinstance(item, list) の意味

isinstance(item, list) は、itemlist 型のインスタンスかどうかをチェックするために使われます。

item1 = [1, 2, 3]
item2 = "Hello"
item3 = (1, 2, 3)

print(isinstance(item1, list))  # True
print(isinstance(item2, list))  # False
print(isinstance(item3, list))  # False

上記の例では、item1 はリストなので True になりますが、文字列(str 型)である item2 やタプル(tuple 型)である item3False になります。

isinstance() を使うメリット

1. 型チェックによるエラー防止

Python は動的型付け言語なので、変数の型を明示的に指定する必要はありません。しかし、型の違いによるエラーを防ぐために isinstance() を使うことで、安全なコードを書けます。

def add_elements(item):
    if isinstance(item, list):
        return sum(item)
    else:
        raise TypeError("引数はリスト型である必要があります。")

print(add_elements([1, 2, 3]))  # 6
print(add_elements("Hello"))   # TypeError

この関数は、引数がリストである場合のみ処理を続行し、そうでない場合は TypeError を発生させます。

2. 複数の型を同時にチェック

isinstance() は、複数の型をタプルとして渡すことで、一度に複数の型のチェックができます。

item = (1, 2, 3)
print(isinstance(item, (list, tuple)))  # True

このコードでは、itemlist または tuple のどちらかであれば True になります。

isinstance(item, list) の注意点

1. サブクラスの影響

Python では list を継承したクラスも isinstance(item, list)True を返します。

class MyList(list):
    pass

my_list = MyList([1, 2, 3])
print(isinstance(my_list, list))  # True

このように、MyListlist を継承しているため、isinstance(my_list, list)True になります。

2. type() との違い

type(item) == list を使うと、サブクラスは False になります。

print(type(my_list) == list)  # False

したがって、サブクラスも許容する場合は isinstance() を、厳密に list のみをチェックする場合は type() を使うとよいでしょう。

まとめ

項目 説明
isinstance(item, list) itemlist のインスタンスかを判定する
型チェックの利点 エラー防止、複数の型のチェックが可能
type(item) == list との違い isinstance() はサブクラスも許容するが、type() は厳密な型チェックを行う

isinstance(item, list) は、プログラムの安全性を向上させるために便利な関数です。型の違いによるエラーを防ぐために、適切に活用しましょう!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?