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

出版日
ページ数
256
Effective Python - Python プログラムを改良する 59 項目
ISBN10
4873117569
ISBN13
978-4873117560
説明

訳書で、原題は「 Effective Python: 59 Specific Ways to Writer Better Python 」です。

次の 8 つの領域に分けて、合計 59 個の「 Python らしい、よりよいコードを書く方法」が紹介されています。

  • Pythonic thinking ( Python 流思考)
  • Functions (関数)
  • Classes and Inheritance (クラスと継承)
  • Metaclasses and Attributes (メタクラスと属性)
  • Concurrency and Parallelism (並行性と並列性)
  • Built-in Modules (組み込みモジュール)
  • Collaboration (協働作業)
  • Production (本番運用準備)

どちらかというと発展・応用的な内容なので、 Python の文法や考え方等の基本を一通り押さえた後に読むのがおすすめです。

目次
推薦の言葉 日本語版へ寄せて まえがき 1章 Python 流思考( Pythonic Thinking ) 項目 1: 使っている Python のバージョンを知っておく 項目 2: PEP 8 スタイルガイドに従う 項目 3: bytes , str, unicode の違いを知っておく 項目 4: 複雑な式の代わりにヘルパー関数を書く 項目 5: シーケンスをどのようにスライスするか知っておく 項目 6: 1つのスライスでは、 start, end, stride を使わない 項目 7: map や filter の代わりにリスト内包表記を使う 項目 8: リスト内包表記には、 3 つ以上の式を避ける 項目 9: 大きな内包表記にはジェネレータ式を考える 項目 10: range よりは enumerate にする 項目 11: イテレータを並列に処理するには zip を使う 項目 12: for と while ループの後の else ブロックは使うのを避ける 項目 13: try/except/else/finally の各ブロックを活用する 2章 関数 項目 14: None を返すよりは例外を選ぶ 項目 15: クロージャが変数スコープとどう関わるかを知っておく 項目 16: リストを返さずにジェネレータを返すことを考える 項目 17: 引数に対してイテレータを使うときには確実さを尊ぶ 項目 18: 可変長位置引数を使って、見た目をすっきりさせる 項目 19: キーワード引数にオプションの振る舞いを与える 項目 20: 動的なデフォルト引数を指定するときには None とドキュメンテーション文字列を使う 項目 21: キーワード専用引数で明確さを高める 3章 クラスと継承 項目 22: 辞書やタプルで記録管理するよりもヘルパークラスを使う 項目 23: 単純なインタフェースにはクラスの代わりに関数を使う 項目 24: @classmethod ポリモルフィズムを使ってオブジェクトをジェネリックに 項目 25: 親クラスを super を使って初期化する 項目 26: 多重継承は mix-in ユーティリティクラスだけに使う 項目 27: プライベート属性よりはパブリック属性が好ましい 項目 28: カスタムコンテナ型は collections.abc を継承する 4章 メタクラスと属性 項目 29: get や set メソッドよりも素のままの属性を使う 項目 30: 属性をリファクタリングする代わりに @property を考える 項目 31: 再利用可能な @property メソッドにディスクリプタを使う 項目 32: 遅延属性には __getattr__, __getattribute__, __setattr__ を使う 項目 33: サブクラスをメタクラスで検証する 項目 34: クラスの存在をメタクラスで登録する 項目 35: クラス属性をメタクラスで注釈する 5章 並行性と並列性 項目 36: subprocess を使って子プロセスを管理する 項目 37: スレッドはブロッキング I/O に使い、並列性に使うのは避ける 項目 38: スレッドでのデータ競合を防ぐために Lock を使う 項目 39: スレッド間の協調作業には Queue を使う 項目 40: 多くの関数を並行に実行するにはコルーチンを考える 項目 41: 本当の並列性のために concurrent.futures を考える 6章 組み込みモジュール 項目 42: functools.wraps を使って関数デコレータを定義する 項目 43: contextlib と with 文を try/finally の代わりに考える 項目 44: copyreg で pickle を信頼できるようにする 項目 45: ローカルクロックには time ではなく datetime を使う 項目 46: 組み込みアルゴリズムとデータ構造を使う 項目 47: 精度が特に重要な場合は decimal を使う 項目 48: コミュニティ作成モジュールをどこで見つけられるかを知っておく 7章 協働作業(コラボレーション) 項目 49: すべての関数、クラス、モジュールについてドキュメンテーション文字列を書く 項目 50: モジュールの構成にパッケージを用い、安定な APIを提供する 項目 51: API からの呼び出し元を隔離するために、ルート例外を定義する 項目 52: 循環依存をどのようにして止めるか知っておく 項目 53: 隔離された複製可能な依存関係のために仮想環境を使う 8章 本番運用準備 項目 54: 本番環境を構成するのにモジュールスコープのコードを考える 項目 55: 出力のデバッグには、 repr 文字列を使う 項目 56: unittest ですべてをテストする 項目 57: pdb で対話的にデバッグすることを考える 項目 58: 最適化の前にプロファイル 項目 59: メモリの使用とリークを理解するには tracemalloc を使う 訳者あとがき 参考文献 索引
紹介( powered by openBD

効果的な優れたPythonプログラムを書くノウハウ集!
Addison-Wesleyの人気シリーズ、Effectiveシリーズに待望のPythonバージョンが登場。Effectiveシリーズの真骨頂である、効率的で優れたプログラムはどのように書けばよいのかを指南。ベストプラクティス、ヒント、ショートカットや達人プログラマのコードなどを紹介し、効果的な優れたPythonプログラムを書くノウハウをまとめています。「関数」「クラスと継承」「メタクラスと属性」といったピックごとに、より効果的なPythonコードを書くために何をすべきか、何をすべきでないか、なぜこれがよい方法なのかをPython流にのっとって解説。Pythonの威力を体感できる一冊です。