Last Updated on 2025年7月28日
Pythonで開発をしていると、以下のようなエラーメッセージに出くわすことがあります。
|
1 |
TypeError: 'int' object is not callable |
このエラーは一見すると分かりにくいですが、原因は非常に単純です。本記事では、TypeError: 'int' object is not callable の原因を丁寧に解説し、再発を防ぐための対処法や実践例をご紹介します。
目次
- TypeError: 'int' object is not callable とは?
- エラーが発生する主な原因
- よくあるコード例と間違いポイント
- エラーの対処法と修正パターン
- 混乱しやすい関数と変数の使い方
- エラー防止のチェックリスト
- よくある質問と補足解説
TypeError: 'int' object is not callable とは?
このエラーは、int型の値に対して関数のように「()(丸括弧)」を使ったときに発生します。つまり、Pythonが「関数として呼び出せるのは関数だけなのに、整数を呼び出そうとしている」と判断したということです。
TypeError: 'int' object is not callable の原因
このエラーの典型的な原因は、以下のような「関数名と同じ名前でint型の変数を定義してしまう」ケースです。
|
1 2 |
sum = 10 result = sum([1, 2, 3]) # エラー発生 |
上記のように、Pythonの組み込み関数であるsum()に数値10を代入してしまったため、その後sum()が使えなくなり、intを呼び出そうとしてエラーが出ているわけです。
TypeError: 'int' object is not callable の具体例
① 組み込み関数と同じ名前の変数を定義している
|
1 2 |
max = 100 print(max([1, 2, 3])) # TypeError発生 |
② 関数呼び出しを忘れて丸括弧だけつけている
|
1 2 |
value = 5 value() # これはint型を関数のように呼び出している |
③ 型変換関数の誤用
|
1 2 |
int = 123 num = int("456") # 組み込み関数intが上書きされてエラー |
TypeError: 'int' object is not callable の対処法
① 上書きした関数名を別の名前に変更する
|
1 2 3 4 5 6 7 |
# NG sum = 10 result = sum([1, 2, 3]) # エラー # OK total = 10 result = sum([1, 2, 3]) |
② 定義済みの変数名を確認してから使う
Jupyter Notebookなどでは、既に定義された変数が影響する場合があるので、delやカーネル再起動で解決できます。
|
1 |
del sum # 組み込み関数を復活させる |
③ 関数と変数の名前を明確に分ける
|
1 2 3 4 5 |
# 悪い例 int = 1 # 良い例 int_value = 1 |
混乱しやすい関数と変数の命名
初心者が特に混乱しやすいのは以下の関数と同じ名前の変数定義です:
sumlistintstrinput
これらの名前を変数に使うと、元々の関数が使えなくなるためエラーが発生しやすくなります。
TypeError: 'int' object is not callable の防止チェックリスト
- 組み込み関数と同じ名前の変数を使っていないか?
- 変数と関数の命名を明確に分けているか?
- 変数の型を確認してから
()を使っているか? - 不要な関数上書きがあれば
delで削除したか?
よくある質問と補足解説
Q. 変数を定義し直したのにまだエラーが出ます
JupyterやPythonインタプリタでは、過去の変数が残っている場合があります。その場合は、カーネルの再起動やdelを使ってリセットしてください。
Q. 自作関数で同じようなエラーが出ます
関数と同名の変数を定義していないか確認してください。自作関数名を使った直後に同じ名前の変数を使うと、関数が上書きされてしまいます。
Q. 型の確認方法はありますか?
次のようにtype()関数を使うと、変数が何の型なのかを確認できます。
|
1 2 |
x = 100 print(type(x)) # <class 'int'> |
このTypeErrorは、関数と変数の混同によって非常に起こりやすいミスです。しかし、命名を工夫するだけで劇的に減らすことができます。ぜひ本記事を参考に、ミスのないPythonコードを書いていきましょう。


