Colaboratoryで言語処理100本ノックをやっていると次のようなエラーに遭遇した。
TypeError: ‘str’ object is not callable
なんてことはなかった。strという変数を定義してしまったがために、strの機能が使えなくなっていた。
str = "message"
print(str(100))
ただ、この問題を修正しても依然としてエラーが消えなかった。Colaboratoryはインタプリタを実行するような状態になっており、str=”…”の情報が残ったままだったので、エラーになっていたようだ。ランタイム -> 実行の中断をすると正常に動作した。
普段はIDEを使い倒しているので、そらんじるとなるとなかなか難しい。。。
ところで、Colaboratoryは各コードブロックで状態を共有しているようで次のようなコードがあった場合、コードブロック1を実行して、コードブロック2を実行するとindexの値が変わり、コードブロック2を実行するたびにindexの値が大きくなっていく。
# コードブロック1
index = 0
# コードブロック2
index += 1
print(index)
グローバルに変数を置くな、という話ではあるが、実験コードだったりするとよく遭遇しそうなので気をつけよう。
コメント