辞書における型チェックの理解
このステップでは、Python の辞書内で型チェックを行う重要性を探ります。辞書は、キーと値のペアを格納できる汎用的なデータ構造です。しかし、コードの整合性と信頼性を確保するためには、辞書に格納されているキーと値の型をチェックする方法を理解することが重要です。
Python の辞書は、中括弧 {}
を使用して定義されます。辞書内の各要素は、コロン :
で区切られたキーと対応する値で構成されています。
まず、簡単な辞書を作成してみましょう。
## Create a dictionary
my_dict = {
"name": "Alice",
"age": 30,
"city": "New York"
}
print(my_dict)
上記のコードを ~/project
ディレクトリ内の type_checking.py
という名前のファイルに保存します。VS Code エディタを使用してこのファイルを作成および編集できます。
次に、ターミナルで以下のコマンドを使用してスクリプトを実行します。
python ~/project/type_checking.py
以下の出力が表示されるはずです。
{'name': 'Alice', 'age': 30, 'city': 'New York'}
この辞書では、キーは文字列 ("name"
, "age"
, "city"
) で、値は文字列 ("Alice"
), 整数 (30
), および別の文字列 ("New York"
) です。
辞書に格納されているデータが期待通りの型であることを確認したい場合、型チェックが重要になります。たとえば、年齢が常に整数であること、または名前が常に文字列であることを検証したい場合があります。
辞書に新しいキーと値のペアを追加したいが、値が特定の型であることを確認したいシナリオを考えてみましょう。
VS Code で type_checking.py
ファイルを開き、以下のように変更します。
## Create a dictionary
my_dict = {
"name": "Alice",
"age": 30,
"city": "New York"
}
## Function to add a key-value pair with type checking
def add_item(dictionary, key, value, expected_type):
if isinstance(value, expected_type):
dictionary[key] = value
print(f"Added {key}: {value} to the dictionary.")
else:
print(f"Error: {key} must be of type {expected_type.__name__}.")
## Example usage
add_item(my_dict, "occupation", "Engineer", str)
add_item(my_dict, "salary", 75000, int)
add_item(my_dict, "is_active", True, bool)
add_item(my_dict, "height", "5.8", float) ## Intentionally incorrect type
print(my_dict)
このコードでは、辞書、キー、値、および期待される型を入力として受け取る add_item
関数を定義しています。この関数は、isinstance()
関数を使用して、値が期待される型であるかどうかをチェックします。もしそうであれば、キーと値のペアが辞書に追加されます。そうでなければ、エラーメッセージが表示されます。
再度スクリプトを実行します。
python ~/project/type_checking.py
以下の出力が表示されるはずです。
Added occupation: Engineer to the dictionary.
Added salary: 75000 to the dictionary.
Added is_active: True to the dictionary.
Error: height must be of type float.
{'name': 'Alice', 'age': 30, 'city': 'New York', 'occupation': 'Engineer', 'salary': 75000, 'is_active': True}
ご覧のとおり、add_item
関数は、"occupation"、"salary"、および "is_active" のキーと値のペアを辞書に正常に追加しました。これは、それらの値が期待される型と一致していたからです。しかし、"height" については、提供された値 ("5.8") が文字列であり、期待される型が float
であったため、エラーメッセージが表示されました。
この例は、辞書における型チェックの基本的な概念を示しています。次のステップでは、Python コードにおける型の安全性を確保するためのより高度な技術を探ります。