オーダーメイドコース
icon
icon

Pythonで型を指定する方法を現役エンジニアが解説【初心者向け】

初心者向けにPythonで型を指定する方法について現役エンジニアが解説しています。型とはデータの値の種類のことで、数値や文字列やリスト、タプルやオブジェクトがあります。typingモジュールを使って型を指定する方法や型の指定の際の書き方などを解説します。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

Pythonで型を指定する方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して、初心者向けに解説します。

 

Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプ、Python講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Pythonで型を指定する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 
この記事ではPythonで型を指定する方法について解説します。
 

目次

 

型を指定するメリット

Pythonでは3.0から関数アノテーションという仕組みが導入されました。これにより関数の引数や戻り値にアノテーションを記述できるようになりました。

また関数アノテーションに型情報を記述することがPEP484で規定されたことからPython3.5ではtypingモジュールが追加されました。

型を指定することのメリットは誤った引数によるエラーを防ぐことができます。また引数と戻り値の型が明確になることから関数やメソッドの使い方が明確になり、関数を利用する側の間違いを防ぐことにもつながります。

Pythonでは型指定はこれまでなく、変数に対して値を自由に入れることができていました。しかし、型指定ができることにより引数で渡ってくる値の方が特定できるので余計なエラーを防げます。
 

[PR] 未経験からWebエンジニアを目指す方法とは

typingモジュールについて

typingモジュールは関数アノテーションで型情報を明記するにおいて手助けをしてくれるモジュールです。

typingモジュールにはいくつか種類があり、使う際には以下のように記述します

from typing import 使用するもの

 

typingモジュールによる型指定方法

typigモジュールには以下のような型があります。今回は代表的なもののみ記載します

説明
List[X] 要素の型がXのリスト x: List[float]
Union[X, Y] XかYのいずれかの型 x:Union[str, int]
Any 任意の型 x:Any
Callable[[X . . . .],  Y] 引数に指定する型のリストが[X …. ] で戻り値がY x:Callable[[int, float], str]
Dict[X, Y] 辞書でキーの型がX, 値がY x:Dict[str, int]

 

実際に書いてみよう

では実際にtypingを使って型指定したプログラムを作成してみましょう。
 

プログラムソースコード

from typing import List, Union

def add(x: List[Union[int, float]]) -> float:
    sum = 0
    for i in x:
        sum = sum + i
    return sum


print(add([10, 21, 15.2, 2.54]))

 

実行結果

48.74

 

まとめ

この記事ではPythonで型を指定する方法を解説しました。

このtypingモジュールを使う方法はPython3系からしか使えないので注意が必要です。
 

監修してくれたメンター

メンターSさん

システムエンジニアとしてこれまで行政システムや医療用システムの保守、開発に携わりました。

JavaやPython、PHP、Kotlinなど様々な言語での開発経験があります。
TechAcademyではJavaコース、Pythonコース、AIコースなど7コースを担当しています。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも、Pythonを使った人工知能(AI)や機械学習の基礎を習得できる、オンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。