2019年5月15日水曜日

読書環境

今日読んだ本、Effective Python ―Pythonプログラムを改良する59項目 (Brett Slatkin(著)、石本 敦夫(監修)、黒川 利明(翻訳)、鈴木 駿(査読)、株式会社オライリー・ジャパン)の感想。

Pythonに入門直後、基礎的な部分のみでもちょっと知った直後、ある程度の長さのプログラムのコードをPythonで書く直前あたりの時期の読むのに最適、読んでおきたい一冊。特に前半辺り部分。

Pythonでコードを書く時の心構えとしては、「The Then of Python」

C:\Users\...>python3 -m this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

C:\Users\...>
あるいは、対話型環境では
>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
>>> 
を読むのがいいけど、抽象的で、いざコードを書くとなったらどうすればいいか分からない、あるいは加減が分からないという場合に、参考になりそうな具体的な例、コードの書き方が特に前半の方に沢山あった。だから、Pythonでプログラムを学び始める、始めた人はもちろんのこと、他のプログラムング言語からPythonにきた人が元の言語の習慣からPythonらしい方法を身につける、Pythonistaになるのに役立つ一冊。

最初にPythonに入門直後にと書いたけど、Pythonでプログラムのコードを書くことにある程度慣れてきた場合に読むのにも良さそう。ある程度慣れてくると、自分の好みの書き方が出てきたり、癖が偏ってきたりして、もしそれがPythonらしい書き方ではなくなってきてるとしたら、修正するきっかけにもなりそうだから。

後半の辺りに進んでくに連れて、Pythonらしい書き方、あるいは分かりやすい容易な書き方というよりは、ちょっと複雑なコード書き方とかPythonのちょっと進んだ難しい機能とかの紹介といった感じ。ちょっと難しいかもしれないけど利用すれば、その分それ以上に得られることが多そう。まだPythonに入門したばかりの時は必要ないかもしれないけど、その後に進んだコードを書くとき、あるいは、人が書いたコードを読む時に役立ちそうなことが多かった。

最後の参考文献のPythonについての入門書の紹介に無かった本で、私が読んだ本の中でPythonの入門書としておすすめなのは、Head First はじめてのプログラミング ―頭とからだで覚えるPythonプログラミング入門Head First Python 第2版 ―頭とからだで覚えるPythonの基本入門 Python 3の3冊。Head First はじめてのプログラミングはPython以前にプログラミング自体に入門する人向け、Head First Pythonは楽しくPythonを学びたい人向け、入門 Python 3はHead First Pytyhonほど気軽な感じ、楽しい感じではないかもしれなけど、より広範囲について、きっちり入門したい人向けといった感じ。

Head First Pytyhonがお気に入りな理由の一つの具体的な例としては、クラスの学習について。Pythonに限らず、プログラムの入門書のオブジェクト指向、クラスの紹介について、よくあるのは動物、犬、猫等で継承等を紹介しているけど、本著はそうではないというところ。実際に使いそうな例、役立つ機能の紹介の中で自然とクラスの話が出てきて、あえてクラス、オブジェクト指向という項目を用意してないところ。実践的でありながら楽しく学べる。

ということで、これからも不定期にでも本著を読み返して、自身のコードの書き方がPyhtonらしい方法から離れていってないか、癖の強いものになっていってないか、なっていったらそれを修正しながら、いいPythonistaに近づけていけたら思った今日この頃。

0 コメント:

コメントを投稿