Python開発効率高杉
最近仕事でPythonを使い始めたが、Cと比べて開発効率が良すぎる。
もちろんPerlやRubyでも同様のやり方だと思うが、特にmap()関数が気に入っている。例えば、あるオブジェクトのリスト(objs)から、属性(val)のリストを取り出すには以下のようにする。
vals = map(lambda obj: obj.val, objs)
めちゃくちゃ楽である。
実際使い出すと色々なことに疑問を持つようになる。例えば、ある関数の引数に渡す変数の型は、外側と内側のどちらで規定すべきかとか、関数のoutputは、引数で戻すべきか、それとも返値で戻すべきかとか。
少しずつ理解していくしかない。
追記:
上記の使い方だけであれば、リスト内包表記の方が楽だったかもしれない。
vals = [obj.val for obj in objs]
Pythonはシーケンスに対する操作(スライシングやイテレータなど)が充実しているイメージがあるので、他にもありそうであるが、ここら辺は色々研究したい。