Pythonプログラムを実行する際に、’str’ object is not callableなどのエラーメッセージが表示されることがあります。このエラーは、変数やオブジェクトを関数として呼び出そうとした際に発生します。
具体的な原因と対処法を見ていきましょう。
x = 10
x() # TypeError: 'int' object is not callable
対処法1:関数名のスペルミスをチェックする
エラーメッセージに表示されているオブジェクト名や関数名のスペルを確認しましょう。もしスペルミスがある場合は、正しいスペルに修正することでエラーを解消することができます。
def my_function():
print("Hello, world!")
my_funtion() # 関数名のスペルミスがある
# NameError: name 'my_funtion' is not defined. Did you mean: 'my_function'?
対処法2:変数名の競合を避ける
変数名と関数名が競合している場合にも、’x’ object is not callableのエラーが発生することがあります。変数名と関数名が同じである場合、Pythonは変数を優先して認識します。そのため、関数を呼び出す際に変数として認識され、エラーが発生します。変数名と関数名が競合していないか確認しましょう。
def print_message():
message = "Hello, world!"
print(message)
print_message = "Hello, Python!" # 変数名と関数名が競合している
print_message() # 変数として認識されるためエラーが発生する
# Traceback (most recent call last):
# File "sample.py", line 5, in <module>
# print_message() # 変数として認識されるためエラーが発生する
# ^^^^^^^^^^^^^^^
# TypeError: 'str' object is not callable
以上が、’x’ object is not callableのエラーの原因と対処法です。TypeErrorはいろんな要因で発生するので、しっかり要因を理解しておきましょう。