Python初心者の落とし穴

python

リストを作成するときに、例えばrange()でシーケンスを作成してlist()でキャストしてリスト型を作成する場面があると思います。
そんなときになぜか次のようなエラーが出てしまうことがあります。

TypeError: 'list' object is not callable

スペルミスも何もないのに。。。

これはどこかでlistを変数名としているから問題が起こっています。
listは予約語ですから変数名に使用できません。初心者の場合、つい変数名にこの名前を使う場合があります。
もし、変数名にlistを使用した場合、以降に例えばlist型にキャストするときにlist()が使えなくなります。
つまり、変数名にすることでlist型の機能を失っているのです。
そしてそのときに出されるエラーが、`’list’ object is not callable`です。

listに限らず予約語を不用意に使用すると同様の問題が起こりますので注意しましょう。

タイトルとURLをコピーしました