【Python】「TypeError : 型 object is not callable」の解決方法
こんにちは、にわこまです。
今回は、pythonのTypeErrorの解決方法について紹介します。TypeErrorはクラスや関数をたくさん使う開発で起こることが多いエラーです。しかし、解決する方法は簡単であるため、ひとつ1つ確認していきましょう。
誤字脱字や分からない点、解決してほしい問題がありましたら、ご連絡お願いいたします。
メールまたはTwitterのDMで受け付けています。
スポンサードサーチ
TypeErrorの解決方法
1.スペルチェック
2.クラス名または関数名を変数として利用していないか確認
以上の2点を行うことでTypeErrorを解決することができます。
そもそも「TypeError」とは、「その型のオブジェクトは呼び出すことができません」というエラーです。
呼び出すとは、関数として実行するということです。(例「sort()」はsortという関数を実行、呼び出しているということです。)
Python TypeErrorの公式ドキュメントはこちら
例えば「TypeError: ‘int’ object is not callable」というエラーが発生したとします。このエラーが指しているのは、「int型は呼び出すことができません」ということです。
エラーのサンプルコード1(スペルチェック)
TypeErrorが発生するサンプルコードとその実行結果を以下に示します。
def func():
return "Niwakoma"
fun = "Blogger"
print(fun())
=== 実行結果 ===
Traceback (most recent call last):
File "is_not_callable.py", line 6, in <module>
print(fun())
TypeError: 'str' object is not callable
1行目、2行目でfunc関数が定義されています。
4行目でfun変数が定義されています。
func関数を呼び出すはずが、fun変数を呼び出してしまっているためエラーが発生しました。
6行目の「fun()」を「func()」に変えることで解決できます。
エラーを解決したサンプルコードとその実行結果を以下に示します。
def func():
return "Niwakoma"
fun = "Blogger"
print(func())
=== 実行結果 ===
Niwakoma
エラーのサンプルコード2(変数名を確認)
TypeErrorが発生するサンプルコードとその実行結果を以下に示します。
def num():
return 369
num = 1234
print(num())
=== 実行結果 ===
Traceback (most recent call last):
File "is_not_callable2.py", line 6, in <module>
print(num())
TypeError: 'int' object is not callable
1行目、2行目でnum関数が定義されています。
4行目で新たに変数numが定義されています。
関数を定義したあとに、おなじ文字列で変数を定義したためエラーが発生しました。
関数名または変数名を変えることで解決できます。
エラーを解決したサンプルコードとその実行結果を以下に示します。
def num():
return 369
n = 1234
print(num())
=== 実行結果 ===
369
まとめ
今回は、pythonのエラーの1つであるTypeErrorの解決方法を紹介しました。
TypeErrorはクラスや関数を多く使う開発で起こりやすいです。そのため、クラスや関数、変数の命名に規則性を持たせることや使用した名前を記録しておくことが必要となります。
改めて解決方法を以下に示します。
1.スペルチェック
2.クラス名または関数名を変数として利用していないか確認
解決してほしいエラー、問題などがありましたらメールまたはTwitterのDMまで!
最後までお読みいただきありがとうございます。
スポンサードサーチ