実践 Python 3

[cover photo]
TOPICS
Programming , Python
発行年月日
PRINT LENGTH
372
ISBN
978-4-87311-739-3
原書
Python in Practice
FORMAT
Print PDF EPUB
Ebook
3,740円
Ebookを購入する
Print
3,740円

仕事や研究で役立つ実践的な側面を重視し、一般的なプログラミングのベストプラクティスをPythonに適用する方法について解説します。主なテーマは、エレガントなコーディングのためのデザインパターン、処理速度向上のための並行処理とCython、高レベルなネットワーク処理、そしてグラフィックスです。読者対象は中級以上のPythonプログラマー。実践的なベストプラクティスを示し、巷で囁かれてきた「デザインパターンはPythonには不向き」「Pythonはマルチコアの恩恵を受けられない」といった認識が間違いであり、迷信にすぎなかったことを明らかにします。2014年米国Joltアワード受賞書、待望の邦訳。

関連ファイル

目次

序文
訳者まえがき
まえがき

1章 生成に関するデザインパターン
    1.1 Abstract Factoryパターン
        1.1.1 古典的なAbstract Factory
        1.1.2 パイソニックなAbstract Factory
    1.2 Builderパターン
    1.3 Factory Methodパターン
    1.4 Prototypeパターン
    1.5 Singletonパターン

2章 構造に関するデザインパターン
    2.1 Adapterパターン
    2.2 Bridgeパターン
    2.3 Compositeパターン
        2.3.1 古典的なコンポジット/非コンポジットによる階層
        2.3.2 単一クラスによるコンポジット/非コンポジット
    2.4 Decoratorパターン
        2.4.1 関数デコレータとメソッドデコレータ
        2.4.2 クラスデコレータ
    2.5 Facadeパターン
    2.6 Flyweightパターン
    2.7 Proxyパターン

3章 ふるまいに関するデザインパターン
    3.1 Chain of Responsibilityパターン
        3.1.1 古典的な鎖
        3.1.2 コルーチンベースの鎖
    3.2 Commandパターン
    3.3 Interpreterパターン
        3.3.1 eval()を用いた式評価
        3.3.2 exec()を用いたコード評価
        3.3.3 サブプロセスを用いたコード評価
    3.4 Iteratorパターン
        3.4.1 シーケンス型プロトコルのイテレータ
        3.4.2 iter()関数によるイテレータ
        3.4.3 イテレータプロトコルによるイテレータ
    3.5 Mediatorパターン
        3.5.1 古典的なMediator
        3.5.2 コルーチンベースのMediator
    3.6 Mementoパターン
    3.7 Observerパターン
    3.8 Stateパターン
        3.8.1 状態に適応するメソッド
        3.8.2 状態ごとのメソッド
    3.9 Strategyパターン
    3.10 Template Methodパターン
    3.11 Visitorパターン
    3.12 ケーススタディ:Imageパッケージ
        3.12.1 Imageモジュール
        3.12.2 Xpmモジュールの概要
        3.12.3 PNGラッパーモジュール

4章 高レベルな並行処理
    4.1 CPUバウンドな並行処理
        4.1.1 キューとマルチプロセッシングの使用
        4.1.2 フューチャーとマルチプロセッシングの使用
    4.2 I/Oバウンドな並行処理
        4.2.1 キューとマルチスレッドの使用
        4.2.2 フューチャーとマルチスレッドの使用
    4.3 ケーススタディ:並行処理によるGUIアプリケーション
        4.3.1 GUIの作成
        4.3.2 ImageScaleのワーカーモジュール
        4.3.3 GUI上での進捗表示
        4.3.4 終了時の処理

5章 Pythonの拡張
    5.1 ctypesによるCライブラリへのアクセス
    5.2 Cythonの使用
        5.2.1 Cythonを使ったCライブラリへのアクセス
        5.2.2 Cythonモジュールによるさらなる高速化
    5.3 ケーススタディ:Imageパッケージの高速化

6章 高レベルなネットワーク処理
    6.1 XML-RPCアプリケーション
        6.1.1 データラッパー
        6.1.2 XML-RPCサーバー
        6.1.3 XML-RPCクライアント
    6.2 RPyCアプリケーション
        6.2.1 スレッドセーフなデータラッパー
        6.2.2 RPyCサーバー
        6.2.3 RPyCクライアント

7章 PythonとTkinterによるGUIアプリケーション
    7.1 Tkinter入門
    7.2 Tkinterによるダイアログの作成
        7.2.1 ダイアログスタイルのアプリケーション
        7.2.2 アプリケーションのダイアログ
    7.3 Tkinterによるメインウィンドウアプリケーションの作成
        7.3.1 メインウィンドウの作成
        7.3.2 メニューの作成
        7.3.3 インジケータ付きステータスバーの作成

8章 OpenGLによる3Dグラフィックス
    8.1 パースペクティブなシーン
        8.1.1 PyOpenGLを用いたシリンダーの作成
        8.1.2 pygletによるシリンダーの作成
    8.2 平行投影によるゲーム
        8.2.1 ボードのシーン作成
        8.2.2 シーンオブジェクトの選択
        8.2.3 ユーザーインタラクション

あとがき
参考文献
サンプルコードについて
索引

コラム目次
    シーケンスのアンパック/ディクショナリのアンパック
    バウンドメソッドとアンバウンドメソッド
    OS XやWindowsでの
    Pythonの拡張
    Gravitate