Python3 で、`del`文が排除されなかったのはなぜですか?

投稿者: Anonymous

Python3 では、print文が排除されました。
printは、プログラムの構造に影響を与えないので、文ではなく関数である、というのはもっともだと思います。

しかし、なぜ del は文のまま残ったのでしょうか?
delの逆の操作である「代入」が関数ではなく文だからでしょうか?

個人的には、del文もまた排除されるべき対象だったように思います。
このままだと、del は関数としても文としても書ける (del(a)del a) ので、「同じことは同じ書き方」のPythonの流儀から外れているように思います。
なぜでしょうか?

解決

delの機能は関数では実現出来ません。
delが関数ならば、del(a)とした時delへ渡るのは変数aが評価された後の”値”であって”a”という変数名ではありませんから。

Lispのような言語ではこういった事も関数と同じ見た目の構文(マクロ)で行なう事が出来るようですね。
その方が一貫性があってよい、という意見もあるかと思います。
しかし、Python界隈は「違う機能には違う構文があるべき」という方針なのでしょう。

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *