ITの隊長のブログ

ITの隊長のブログです。Pythonを使って仕事しています。最近は機械学習をさわりはじめたお(^ω^ = ^ω^)

今「Effective Python」って本読んでいるけど面白い : 【Effective Python】読書ログ1日目

スポンサードリンク

Pythonの技術書ってなんだかんだはじめて読んだかも。

Effective Python ―Pythonプログラムを改良する59項目

Effective Python ―Pythonプログラムを改良する59項目

まだ2章までしか読んでいないけど、なんかPythonでいい感じの書き方ってどんななだろー? ま、いっか。うごくし。的なことを解決してくれていて、すごく面白く読み進めている。

ちゃんとした感想は読み終えたあとに書くが、ちょこちょこ( ゚д゚)ハッ!とした内容をメモしておく。

  • bytes, str, unicodeの違いを知っておく
    • Python2では誰しもハマるunicodeだけど、理解した上でヘルパー関数を用意して楽しよう
    • よくエラーをキャッチしてはエラー文をググって15分消費するって感じだけど、この本では3Pで理解できる(はず
  • イテレータを並列に処理するにはzipを使う
    • これまでenumerateとか使っていたけど、そういえばzipがあった
  • Noneを返すよりは例外を選ぶ
    • Noneは条件式においてFalseなので、他の値(ゼロ、空文字列)もFalseに評価されるから想定外なケースを引き起こしやすい
    • 例外を上げて、特別な条件を示すようにする。try ~ except使えってこと
  • 動的なデフォルト引数を指定するときにはNoneとドキュメンテーション文字列を使う
    • デフォルト引数は1度しか評価されない。モジュールロード時の関数定義の時だけ
    • びびった話は{}とか[]をいれても1度しか書記されない(なんだと?!!
    • なので、何度も実行した場合、値が初期化されず引き継がれ摩訶不思議なエラーになるとのこと
    • この場合はデフォルト値をNoneにして、コメントで振る舞いを説明しないさいとのこと