【Python】type()関数を使ってオブジェクトの型を取得する!
Pythonのtype()関数を使用することでオブジェクトの型を取得することができます。
type()関数とはパラメータに指定したオブジェクトの型を返す関数であり、オブジェクトの型を調べることができます。
そのため、int型やsting型のようなプリミティブ型の型名を取得することができたり、リストやタプルなどのような複数のデータ型の型名を取得することができます。
また、type()関数の他にもisinstance()関数でもオブジェクトの型を調べることができますが、返り値が真偽値となります。
今回は、Pythonのtype()関数を使ってオブジェクトの型を取得する方法について以下の内容で解説していきます。
⚫︎ プリミティブ型での型判定を行う場合
⚫︎ 複数のデータ型の方をを取得する場合
⚫︎ Noneである値の型を取得する場合
⚫︎ type()関数の実践的な使い方
⚫︎ type()関数とininstance()関数との違い
目次
今回はPythonのinで辞書(dict)に指定したキーや値が存在するか確認する方法について説明していきます。
はい!
お願いします!
type()関数とは
type()関数とはパラメータに指定したオブジェクトの型を返す関数であり、オブジェクトの型を調べることができます。
type()関数の書き方
type()関数の書き方は下記となります。
1 |
type("オブジェクト"); |
type()関数のパラメータ
⚫︎ オブジェクト:
型の判定を行いたいオプジェクトを指定する
type()関数のパラメータにオブジェクトを指定することで、指定したオブジェクトの型名を取得することができます。
オブジェクトの型を取得するサンプルコード
type()関数でオブジェクトの型を取得するサンプルコードを紹介します。
プリミティブ型の型を取得する場合
type()関数でプリミティブ型の型を取得してみます。
例
1 2 3 4 5 6 7 8 9 |
int = 23 str = "文字列" float = 34.6 bool = True print(type(int)) print(type(str)) print(type(float)) print(type(bool)) |
出力結果
<class ‘int’>
<class ‘str’>
<class ‘float’>
<class ‘bool’>
type()関数によってプリミティブ型の型名を取得しています。
そのため、それぞれ定義したオブジェクトの型名が表示されています。
複数のデータ型の型を取得する場合
type()関数で複数のデータ型の型を取得してみます。
例
1 2 3 4 5 6 7 |
list = ['list1', 'list2', 'list3'] tuple = ('tuple1', 'tuple2', 'tuple3') dict = {'key1':'value1', 'key2':'value2', 'key3':'value3'} print(type(list)) print(type(tuple)) print(type(dict)) |
出力結果
<class ‘list’>
<class ‘tuple’>
<class ‘dict’>
type()関数で複数のデータ型の型名を取得しています。
そのため、それぞれ定義したオブジェクトの型名が表示されています。
Noneである値の型を取得する場合
type()関数でNoneである値の型を取得してみます。
例
1 2 3 |
none = None print(type(none)) |
出力結果
<class ‘NoneType’>
type()関数でNoneである型を取得しています。
そのため、それぞれ定義したオブジェクトの型は「NoneType」として表示されています。
type()関数の実践的な使い方
type()関数の実践的な使い方を紹介していきます。
type()関数は指定したオブジェクトの型を判定したい場合に使用することができます。
例えば、計算する関数を定義し、引数で入力された値を計算して表示するようにします。
そのため、type()関数を使用することで型名を取得し、その型名がint型であるかどうかの型チェックを行ってあげます。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
def calc(data1, data2): if (type(data1) is int) & (type(data2) is int): result = data1 + data2 result_str = str(result) print('答えは' + result_str) else: print('入力エラーです。') calc(34, 56) calc("34", "67") |
出力結果
答えは90
入力エラーです。
計算を行う前にtype()関数を条件として入力した値がint型であるかどうかを判断しています。
そのため、引数がint型であるなら計算された値が表示され、string型であるならエラーが発しています。
inで辞書(dict)に指定したキーや値が存在するのか確認してみます。
items()メソッドを使用すると指定したキーや値が存在するかどうかを確認することができます。
type()関数とininstance()関数との違い
指定したオブジェクトの型を知りたい場合に使用する関数はtype()関数以外にもininstance()関数というものがありますが、使い方に異なる点があります。
それは「返り値が異なる」という点です。
指定したオブジェクトの型を返すtype()関数に比べて、isinstance()関数はTrueとFalseの真偽値を返すようになります。
例
1 2 3 4 5 6 7 8 9 10 |
str1 = 'String' list1 = ['ele1', 'ele2', 'ele3'] print('・type()関数で型を取得') print(type(str1)) print(type(list1)) print('・isinstance()関数で型を判定') print(isinstance(str1, str)) print(isinstance(list1, tuple)) |
出力結果
・type()関数で型を取得
<class ‘str’>
<class ‘list’>
・isinstance()関数で型を判定
True
False
type()関数を使用する場合は指定したオブジェクトの型名を返しますが、isinstance()関数を使用する場合はTureやFalseの真偽値が返されています。
もし、isinstance()関数をについて詳しく知りたい場合はこちらをご参考ください。
type()関数とisinstance()関数のどちらともオブジェクトの型判定が行われていますね!
そうですね。
オブジェクトの型名を返すtype()関数に比べて、isinstance()関数は、真偽値で型判定を行うことができます。
そのため、型名を取得する場合はtype()関数を、型の判定をする場合はisinstance()関数を使用した方が良さそうです。
今回のポイント
type()関数でオブジェクトの型を取得する
⚫︎ Pythonで指定したオブジェクトの型を取得するtype()関数を使用する
⚫︎ type()関数はint型やstring型のようなプリミティブ型の型名やリストやタプルのような複数のデータ型の型名を取得することができる
⚫︎ type()関数で値がNoneであるオブジェクトの型名を取得すると「NoneType」を返す
⚫︎ type()関数とisinstance()関数の違いは返り値が「型名か真偽値」かである
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。