【Python】引数に型指定をしてコーディングする方法

【Python】引数に型指定をする方法

公開: 更新:



Pythonの関数で引数の型指定を行う方法

Pythonでは関数引数ヒントを指定することで、コードの可読性を高め意図を明確にできます。型ヒントは引数名の後にコロン (:) を付けて記述します。

型ヒントはあくまで「ヒント」であり、Pythonの動的型付けの性質を変えるものではないため、型が一致しない場合でも「実行時にエラーにならない」ことに注意が必要です。しかし、型ヒントを使用することで静的解析ツール(mypyなど)やIDEのサポートが向上し、バグの早期発見や開発効率の向上が期待できます。

また、型ヒントはPython 3.5以降で導入された機能であるため、古いバージョンのPythonでは利用できない点に注意してください。

【サンプルコード】
def add(a: int, b: int) -> int:
    return a + b

result = add(3, 5)
print(result)
【実行結果】
8

上記のコードでは引数ab整数型 (int) であること、戻り値も整数型であることを明示しています。-> int の部分は戻り値の型アノテーションと呼ばれ、関数の戻り値の型を示します。

「Python」を学べるコードキャンプのサービス

引数にデフォルト値を設定し型指定を行う方法

Pythonでは引数にデフォルト値を設定でき、さらに型ヒントを追加できます。型ヒントを追加できることによって、デフォルト値を持つ引数の型が明確になります。基本的な構文は通常の引数の型指定と同じですが、デフォルト値は型ヒントの後に = で記述する必要があります。

【サンプルコード】
def greet(name: str = "Guest") -> str:
    return f"Hello, {name}!"

print(greet())
print(greet("Alice"))
【実行結果】
Hello, Guest!
Hello, Alice!

上記のコードでは、引数name文字列型 (str) であることが明示されており、デフォルト値として"Guest"が設定されています。この設定により引数が省略された場合でも、関数が文字列型の引数を期待していることが保証されます。

デフォルト値を持つ引数は型ヒントを省略することも可能ですが、型ヒントを記述することでコードの可読性と保守性が向上することを覚えておくと良いでしょう。。

Pythonで可変長引数に型指定を行う方法

複数の引数を受け取る場合、可変長引数 (*args) やキーワード可変長引数 (**kwargs) にも型ヒントを指定できます。可変長引数の場合はtypingモジュールTupleを、キーワード可変長引数の場合はDictを使用することが一般的です。

【サンプルコード】
from typing import Tuple, Dict

def sum_numbers(*numbers: Tuple[int, ...]) -> int:
    return sum(numbers)

def describe_person(**details: Dict[str, str]) -> None:
    for key, value in details.items():
        print(f"{key}: {value}")

result = sum_numbers(1, 2, 3, 4)
print(result)

describe_person(name="Alice", age="30", city="New York")
【実行結果】
10
name: Alice
age: 30
city: New York

sum_numbers関数だと*numbersは整数のタプル (Tuple[int, ...]) として扱われ、Tuple[int, ...]と記述することでタプル内の要素が全て整数型であることを示します。

キーワード可変長引数のdescribe_person関数では、**details文字列をキーとし、文字列を値とする辞書型(Dict[str, str])として扱われることを示しています。このように可変長引数に型ヒントを追加することで、関数がどのような入力を受け取るかを明確にすることが可能です。

また、*args は任意の数の位置引数をタプルとして受け取り、**kwargs は任意の数のキーワード引数を辞書として受け取ります。

※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。

ITやプログラミングに関するコラム


ITやプログラミングに関するニュース

ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。

コードキャンプDX人材育成研修 - IT・プログラミングを知って学べるコネクトメディア 金融業界の業務効率化を加速するニッセイアセットマネジメントの生成AI×GAS活用研修事例 - IT・プログラミングを知って学べるコネクトメディア 【製造業のDX人材育成事例】デジタル人材の即戦力化を実現する、日本ガイシ株式会社の異動者向オンボーディング研修 - ITやプログラミングを知って学べるコネクトメディア フューチャーアーキテクト株式会社が実現した新入社員向けIT研修プログラムでタスクフォース制度が主体的な学びと成長を生み出す - IT・プログラミングを知って学べるコネクトメディア コードキャンプDX人材育成研修 - IT・プログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/【IT新入社員研修】オンラインとオフラインの最適バランスを実現したFutureOneの導入事例 - IT・プログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/【新入社員研修】柔軟なハイブリッド型Java研修で実現した新卒20名の成長と成果|サークレイス株式会社 - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/現場により近いところにデジタルを根付かせるDX基礎講座研修|株式会社ブリヂストン - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/業務の効率化・DX推進に向けたIT人材育成への第一歩|株式会社カナエ - ITやプログラミングを知って学べるコネクトメディア 企業・法人向けのIT・プログラミング研修 - ITやプログラミングを知って学べるコネクトメディア

新着記事

対象者別で探す

子供(小学生・中学生・高校生)向け
プログラミング教室検索する

子供(小学生・中学生・高校生)がロボットやプログラミング言語を学ぶことができるオフラインからオンラインスクールを検索、比較することが可能です。

子供(小学生・中学生・高校生)
プログラミング教室検索する

ITやプログラムなどの
最新情報を検索する

日々、新しいITやプログラミング言語の情報が流れていきますが、特定の情報を時系列でニュースやコラムを確認することができます。

ITやプログラムなどの
最新情報を検索する