Pythonで"TypeError: 'str' object is not callable"というエラーが出た
ある時Pythonの練習で某サイトを見ながら対話モード(interactive mode)でコードを打ち込んでいたんです。つまり、ターミナルから
python
と打ち込んで、
>>>
と表示されているところに次々とコードを打ち込んで練習をしていて、そのまま次に自分の作業をしてたら
"TypeError: 'str' object is not callable"
というエラーメッセージが出てきてしまったのでその原因の備忘メモです。
原因といっても単純なものでして、要するにどこかで"str"というオブジェクトを作成してしまっていたためにstr関数が呼べなかったというものです。
通常、数値を文字列に変更する時には、str関数を使用して
num = 3 print("this number is " + str(num)+" !!!")
みたいに記述しますよね。
ところが、どこかでstrを変数として使ってしまっている場合、例えば
str = "hello"
といったように記述してしまっている場合、
print("this number is " + str(num)+" !!!")
と実行しても、
Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'str' object is not callable
みたいなエラーが出されてしまいます。
どうすればいいかというと、そのオブジェクトを消せばいいわけでして、
del str
としてあげれば解決です。
それにしても、なぜstrなんていうオブジェクトを作ってしまったのだろうか。。。