TypeError: ‘str’ object is not callableの治し方

2017年11月13日

f:id:kichie_com:20171109200257p:plain

TypeError: ‘str’ object is not callableの出るコード

if __name__=='__main__':
    str = """sushi habanero yasai juice time
    howdy! it's sunny day! """
    age = 21
    name = 'tomo'
    
    print(str)
    print(name,str(21))
  File "/Users/", line 20, in <module>
print(name,str(21))

TypeError: 'str' object is not callable

原因

Stringに変換するstrではなくstrと言うオブジェクト(変数)が呼び出されているためにエラーが発生している

解決策

変数名を変える

if __name__=='__main__':
    text = """sushi habanero yasai juice time
    howdy! it's sunny day! """
    age = 21
    name = 'tomo'
    
    print(text)
    print(name,str(21))

もしこれでも治らない場合

統合開発環境のspyderやターミナルから扱えるインタラクティブシェルなどで使用している場合はstrと言う変数がまだ残っているために、同じエラーが出る可能性があります。

その場合は一度実行しているそのプログラムを閉じてすべての変数がクリアされている状態から始めると治る可能性があります。