Colaboratoryでハマった話

その他

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)

グローバルに変数を置くな、という話ではあるが、実験コードだったりするとよく遭遇しそうなので気をつけよう。

コメント