英国でデータサイエンスを学ぶ

30代になってから海外で統計学・機械学習・プログラミングを勉強

MENU

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なんていうオブジェクトを作ってしまったのだろうか。。。