Oh 脳《120》Python には switch もないのか

記事一覧Oh 脳: after ZERO 《其之佰弐拾》
Python には switch もないのか

《著》真樹育未《監修》小泉ひよ子とタマゴ倶楽部
第0版♪1988/10/12


goto と並んで、悪名高いのが switch です。
OOP への第一歩はその switch への未練(未熟)を断ち切れるかが鍵になります。

思考回路を switch

よくある対症療法は「switch がないなら…」との未練から、次の選択肢に飛びつきます…

  • (1) if-else で代用する
  • (2) 辞書 dict を導入する

が、これらは「switch があったら…」との未練を捨てられず「同義語」を用いて目先の表現を変えただけで、本質的な問題解決にはなりません。そこで、

  • (3) OOP を導入する

という第3の選択肢があります。OOP の本質を理解することが、

  • Python では 何故 switch が必要でない のか

を知る早道です。

それは「自身の未熟を映す鏡」になるかもしれません。

  • Python には switch もないのか

ここで、switch を goto に代えると、その滑稽さが分かります。(^.^)
まだ AT 車が珍しかった時代を想像してみてください。

と囁く人がいたかもしれません。電気自動車が普及する近未来を想像してみてください。

  • この車には ガソリンタンク もないのか

と囁く人を見掛けたら、どうしますか。

関連記事

同義語大辞林 第二版 (三省堂
  • 発音や表記は異なるが、意味の同じである語。「あす・あした・明日(みょうにち)」「登山・山登り」「ピンポン・卓球」などの類。同意語。シノニム。

TOP

〓 歴史は繰り返す

Python には、

  • 伝統的なC言語風の for
  • 悪名高い switch

がありません。それには意味(意義)があります。これらは「コードを汚染」するだけでなく「バグの温床」になりがちです。


発音や表記に違いはあっても、その意味が同じ(変化しない)ように、
プログラムに違いはあっても、プログラミングとしては同じことです。
そこには、進歩(進化)の跡が見られません。


すると、思い出されるのは…

... zap ...
Smalltalk に触発され、OOP に魅せられたのは 1988 年のことでした。
「switch 文はもう必要ない」と、新鮮な感動を覚えたものです。
もちろん、Smalltalk にも switch はありません。
純粋な OOP の世界では、もはや必要ないからです。


再び「switch を goto に代える」と、この状況を客観視できます。
Python では何故 goto が必要ないのか」これならうまく説明できるでしょう。
Python には goto もないのか」と囁かれないのは、
SP への理解が浸透している証とも言えます。


OOP への理解は、SP ほどには浸透していないのかもしれません。
Python では何故 switch が必要ないのか」を説明できたなら、
`自身`の理解度にも`自信`が持てるようになるでしょう。


switch すべきは思考回路のほうで、SP への第一歩を阻む goto と同様です。
OOP への第一歩である switch への未練(未熟)を断ち切る鍵を手にしたみなさんは、
それを使って、目の前にある扉を開くだけです。

未練大辞林 第二版 (三省堂
  • (1)〔(2)が原義〕あきらめ切れないこと。思い切りの悪いこと。また、そのさま。
  • (2)まだ熟練していない・こと(さま)。未熟。

これまでの(Java/C# などの)常識は通用しなくなるかもしれませんが、
新しい世界観が目の前に開けてくることでしょう。
Python には switch もないのか」
それを「自身の未熟を映す鏡」と心得てください。(^.^)

Last updated♪2009/09/04