Fluent Python ―Pythonicな思考とコーディング手法
- オライリージャパン (2017年10月7日発売)
- Amazon.co.jp ・本 (832ページ)
- / ISBN・EAN: 9784873118178
作品紹介・あらすじ
これが達人パイソニスタの作法!
一歩先行くパイソニスタを目指す人のためのPython解説書。Pythonはシンプルです。使い方を覚えるのも簡単で生産性を短期間で高めることができます。しかしこれは、Pythonに備わっている豊富な機能のほんの一部しか使っていないということでもあります。本書では、とても有用なのにあまり使われていないPythonの特徴的な機能を活用し効果的で慣用的なPythonコードを書く方法について解説します。読者は、Pythonicな思考とコーディング手法を身につけ、コードをより短く、より速く、より読みやすくする方法を学べます。本書では、どうすれば熟練のPython 3プログラマーになれるのかを徹底的に追及します。
感想・レビュー・書評
-
著者がブラジル人のようでUnicodeについて詳しく書いてあるのは良かった。700超のページなので読み終わるのにかなり時間がかかった。しかも大部分がよく理解できなかった。いままで読んできたPython本に比べ抽象度が高く、再読が必要でしょう。
1章 Pythonのデータモデル
省略
2章 シーケンスの配列
リストとタプル、スライスなど便利なデータ構造がある。標準ライブラリ、NumPy,SciPyなどには高速処理してくれるAPIが揃っている
3章 ディクショナリとセット
ディクショナリはPythonの言語仕様にかかわっている大事なデータ構造なので非常に無駄なく高速に処理できるように設計されている。加えてdefaultdict,OrderedDict,ChainMap,Counterなど用途に合わせたモジュールもある。
4章 テキストとバイト
Python3になって文字列を表現するものとしてUnicodeが採用されたPython2でもUnicodeは使えたが分かりにくく、よくUnicodeErrorを発生させた。
5章 第1級関数
関数のように呼び出せるものが多くなり、簡潔に処理を記述できるようになった。
6章 第1級関数を使ったデザインパターン
Pythonなどのような動的言語に向いたデザインパターンがある。
7章 関数デコレータとクロージャ
デコレータがどうも覚えきれない
8章 オブジェクト参照、可変性、リサイクル
9章 Pythonicなオブジェクト
10章 シーケンスをばらして、ハッシュして、スライスする
11章 インターフエイス プロトコルから抽象基底クラスへ
12章 継承の功罪
13章 演算子オーバーロードの適切な用法
省略
14章 イテラブル。イテレータ、ジェネレータ
反復処理で多用されるイテラブル、イテレータの説明。大規模なデータ処理が発生するときメモリを圧迫しないジェネレータ関数の応用例について。
15章 コンテキストマネージャとelseブロック
with文はtry/finally文のシュガー構文なのか?
16章 コルーチン
yieldを使ったジェネレータ関数によく似ている。
17章 futuresを使った並行処理
18章 asyncioによる並列処理
19章 動的属性とプロパティ
20章 属性ディスクリプタ
21章 クラスメタプログラミング
省略詳細をみるコメント0件をすべて表示 -
Pythonの細かい部分まで解説している本。仕事でPythonを使うので一度体系的に、かつ、知識に抜け漏れがないように学んでおきたいと思っていたため購入。全体で700P超とボリューミーだがコードも多く説明も丁寧なためあまり苦労せずに読める。しかし、Python初心者向けの本というよりはある程度Pythonが書ける人がステップアップするための本という感じなので立ち位置的にはEffectiveシリーズと同じようなイメージ。
文字列の章ではユニコードやビッグエンディアン, リトルエンディアン, NFC, NFD, NFKC, NFKD, BOMなども詳しく説明していたりして面白かった。inspectモジュールやfunctoolsの中身など便利なモジュールが解説されてるのも良い。あとPythonでキーワードオンリー引数という物を設計できるというのも知らなかった、便利そう。そのほかにもデコレータ、クロージャとそれに伴うnonlocal宣言、弱参照とキャッシュ、delとGC、プロパティ、抽象基底クラスとインターフェース、多重継承とMixin、並列処理とGIL、ジェネレータとyield from、コルーチン、asyncioパッケージなど面白い内容が盛り沢山だった。基本的にそこまで難しくはないが、コルーチンとasyncio周りはちょっとややこしいしわかりにくい部分もあったので、あまり積極的に使っていこうという気にはならなかった。ノンブロッキング処理をやりたいならやはりNode.jsを使った方が良さそう(根も葉もないが...)。コールバック地獄よりはマシでしょ?と書いてあったが、正直私としてはどっちもどっちだと思う...
メタプログラミングの章はざっくり読み飛ばした。実際、メタクラスの章に書いてあった一番重要なことは「メタクラスを使うな」なので実用という意味では読まなくても良いと思う。
総じて良書であった。訳もわかりやすい。やはり、Pythonのように広く需要のある本は和訳のクォリティが高い気がする。
悪いところはほとんどないが、あえて言えば実用的な箇所だけに解説を絞れば250Pくらいに収まりそうなので、時間がない人のためのTiny Fluent Pythonが待望される。 -
普通に読み物として面白い。Pythonを使い始めて(2020年時点で)まだ一年だが、この本を読了してPythonistaの「中級」になった気分。
-
図書館
-
良くも悪くも、Pythonの細かい部分の本
-
2020/08/28 読書会メソッドを使って、一周目の読書完了した。理解したといえるほど読み込んでいないが、一周でもしたのはとてもよかった。読んだ分の知識はついた。
ただ、とても易しくない本で暗黙に想定している理解の前提条件を満たすために、知識と理解が足りないと分かったのでそれを埋めるべく、やることが明確になったのもいい。
2020/07/05 読みきれていないので、読書会をして他人を巻き込んで自分に強制力をかけることにした。
2017/09/30 初観測
一人で読みきれるだろうか。 -
学生購入希望で購入した図書(平成29年度)
【所在】3F開架
【請求記号】007.64||RA
【OPACへのリンク】
https://opac.lib.tut.ac.jp/mylimedio/search/book.do?target=local&bibid=2007
これまでに学生購入希望で購入した図書の一覧は
http://www.lib.tut.ac.jp/irai/kibo.html#konyu_kibolist
こちらで確認できます -
請求記号 007.64/R 13