MeWrite Docs

TypeError: 'X' object is not callable

呼び出し可能でないオブジェクトを関数として呼び出した場合に発生

概要

TypeError: 'X' object is not callableは、関数ではないオブジェクトを関数として呼び出そうとした場合に発生します。

エラーメッセージ

TypeError: 'int' object is not callable
TypeError: 'str' object is not callable
TypeError: 'list' object is not callable

原因

  1. 変数名が組み込み関数を上書き: listやstrを変数名に使用
  2. プロパティを関数として呼び出し: 括弧をつけてしまった
  3. 括弧の誤り: 連続した括弧

解決策

1. 組み込み関数を上書きしない

1
2
3
4
5
6
7
# 悪い例
list = [1, 2, 3]
new_list = list("abc")  # TypeError

# 良い例
my_list = [1, 2, 3]
new_list = list("abc")  # ['a', 'b', 'c']

2. プロパティと関数を区別

1
2
3
4
5
6
# 悪い例
name = user.name()  # nameがプロパティの場合エラー

# 良い例
name = user.name  # プロパティ
name = user.get_name()  # メソッド

3. 括弧の確認

1
2
3
4
5
# 悪い例
result = some_function()(arg)  # 関数の戻り値を呼び出そうとしている

# 良い例
result = some_function(arg)

4. 変数名の確認

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# 悪い例
def process():
    sum = 0
    for i in range(10):
        sum += i
    return sum([1, 2, 3])  # TypeError: 'int' object is not callable

# 良い例
def process():
    total = 0
    for i in range(10):
        total += i
    return sum([1, 2, 3])  # 6

Python の他のエラー

最終更新: 2025-12-09