Pythonでswitch
twitterで" なんでPythonにはswitchがないの? "とぼやいたところ、ハカーの皆さんがPythonでswitchの実装を教えてくれた。それが勉強になったので僭越ながらご紹介。 Ian Lewis さん、 akisutesama さんより breakし忘れてひどいバグを作る子がいるから if 、 elif で。 これはごもっとも。っていうかこれしか知らないwww MiCHiLU さんより dictを使う 。 {1:lambda x:x, 2:lambda x:x*x, 3:lambda x:x*x*x}.get(4, lambda x:'Infinity')(100) lambdaを使ってこんなことまでできるとは・・・。hirokinkoさんは javaでHashMapを使って 同じような実装をされているそうです。 id:moriyoshi さんより switchを作って いただきました。 def switch(name, bases, dict): dict.get(bases[0], lambda:0)() return type(name, tuple(), dict) class _('a'): __metaclass__ = switch def a(): print 'a' def b(): print 'b' こちら に保存させてもらいました。これは使いたいコードすぎです。 勉強になります!皆様ありがとうございます^^