雑文発散

«前の日記(2016-12-20) 最新 次の日記(2016-12-22)» 編集
過去の日記

2016-12-21 [長年日記]

[][Python] 「みんなの Python 第4版」を読み終えたので、読みながらメモってたことなどを少しまとめてみる

日曜日に買った「みんなの Python 第4版」をひと通り読み終えた。その中で感じたことをつらつらと書いてみる。

みんなのPython 第4版(柴田 淳)

あ、いちおう読んだ人のスペックとしては、PHP 歴が十数年で、JavaScript をここ数年ほど頑張っているという感じ。Ruby は簡単なスクリプトでちょっと使ったりしてた。Python は Pebble の開発環境のトラブルで少し調べた程度。

Python の言語仕様などについて

  • JavaScript (ES2015) を知っているとスッっと入ってくる気がした
    • import とか Set とか yield とか
  • slice の表記はステキ
    • list[2:5] でリストの 2〜4番目の要素を取り出せる
    • これで array_slice(list, 2, 3) と同じ
  • ディクショナリの表現はとても JSON っぽい
    • dict = {"aaa": 1, "bbb": 2}
  • ディクショナリの get のデフォルト指定が便利
    • dict.get("c", 3)
      • ディクショナリに c のキーがなかったら 3 を返す
  • ",".join(["a", "b", "c"]) という表現に慣れない
    • ["a", "b", "c"].join(",") のほうが気持ちいい
  • 追加した順番が保証されるディクショナリが Python 3.6 から標準化
    • PHP っぽい
  • ファイルの open 周りの書き方がとても PHP っぽい
    • 双方とも C 言語での書き方を持ってきている?
  • クラスのインスタンス作成時に new が不要
  • クラスのアトリビュートは、未定義のものでもガンガン作れちゃう
    • クラス内で foo を定義していなくとも klass.foo = bar が実行可能
      • PHP の stdClass みたいだ
      • クラス内で __slot__ = ['aaa', 'bbb'] とすると __slot__ に定義されたものに限定できる
  • クラスのアトリビュートやメソッドにアクセス修飾子がない
    • public, protected, private みたいなやつ
    • アンスコ1個( _hoge() )は private 扱いにするというルールで回避
      • PHP 4 っぽい
    • アンスコ2個( __fuga() )だともうちょい隠蔽してくれる

「みんなの Python 第4版」という書籍について

  • 重い(笑)
    • 通勤電車で吊り革につかまりながら読むのはツライ
  • 他の言語の経験者だとすごくスッと入ってくる
    • 全くの初心者でも理解しやすそうと思える
    • (でも、もうそういうフレッシュさは無いので超想像)
  • typo がものすごく少ない
    • 確実にこれは typo だというのは1ヶ所しかなかった
    • 技術書でここまで typo が少ないのは珍しい

まとめ

「そろそろ Python を知っておきたい」という人の最初の1冊として、この本はオススメ。特に「言語仕様を知りたい」と思っていたオレには超マッチしていた。その先の話として、例えば「Web アプリを作りたい」というニーズがあるとしたら、別の書籍が必要だけど。ということで、次は Django のドキュメントとかも読んでみようと思っている。

しかし、今年の12月になってから Python 欲が強くなってきていたオレなので、この本の出版タイミングはちょうど良かった。いい入門書はないかな?と思って探していたところで第4版の発売を知ったので。しかも著者本人の Facebook での発言から。持つべきものは本を書く友人だなぁ(?)

本日のツッコミ(全1件) [ツッコミを入れる]
pythoner (2017-01-23 21:09)

みんなのPython 第4版と入門 Python 3のどっちがよいですか?