Effective Python その3

その2の続き

  1. try/except/else/finallyの利点を活かすこと
    1. finallyは例外に関わらず呼び出されるのでクローズ処理などを行う
    2. try/exceptにて例外が起きない場合に実施したいコードをelseに書く
  2. Return Noneではなく例外をだすこと
  3. クロージャ内使用する変数とそのスコープの動作を理解する
    1. 変数の参照順序は以下の通り
      1. 現在の関数内の変数
      2. これより外部の関数内の変数
      3. Globalのスコープ
      4. ビルトインで定義されている変数
    2. 上記の参照順序の問題からより狭いスコープで変数に代入するとそのスコープ内の新規の変数として定義され、スコープの外側で定義された変数へは影響を与えない
    3. スコープ外で定義された変数に代入をしたいなら”nonlocal”をしようする
  4. 結果のリストを返すならGeneratorを使う
    1. islice(iterator, start, stop)でリストを返す
  5. 引数にIteratorを取る場合は気をつける
    1. Iter(iterator)はイテレータ自身を返すが、iter(container)ならば、新しいイテレータを返す
    2. __iter__(self)で簡単にIterableなコンテナを作成可能
  6. 可変長引数を使って、読みやすくする
    1. ただし、引数にイテレータをつかったり、引数の追加を行う場合には気をつける

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください