何かを書き留める何か

数学や読んだ本について書く何かです。最近は社会人として生き残りの術を学ぶ日々です。

2015-08-01から1ヶ月間の記事一覧

『Effective Python』Item 37: スレッドはブロッキングI/Oに使い、並列処理は避けよう

『Effective Python』の続き。不遇のWindows。 Effective Python › The Bookwww.effectivepython.com 人によってはGlobal Interpreter Lock(GIL) と聞くと嫌な思い出が蘇ることがあるのだろうか。 私は恥ずかしながら並列・並行プログラミング未経験というア…

『Effective Python』Item 36: 子プロセスを制御するためにsubprocessを使おう

『Effective Python』の続き。想像以上につらい。 Effective Python › The Bookwww.effectivepython.com Item 36から「Concurrency and Parallelism(並行と並列)」と題してPythonによる並行・並列プログラミングのコツを解説…となるのはよいが2つ問題があ…

『Effective Python』Item 35: メタクラスを使ってクラス属性に注釈をつけよう

『Effective Python』の続き。メタクラスとディスクリプタの華麗なる関係。 Effective Python › The Bookwww.effectivepython.com メタクラスの応用例、そしてChapter 4の最後を飾るのはクラス属性の注釈、またはメタクラスとディスクリプタの合わせ技の話で…

『Effective Python』Item 34: メタクラスを使ってクラスの存在を登録をしよう

『Effective Python』の続き。末端の人間頑張れメソッドダメ、ゼッタイ。 Effective Python › The Bookwww.effectivepython.com メタクラスの活用第二弾として、クラスの登録を挙げている。 PythonのオブジェクトをJSON文字列へシリアライズ、JSON文字列から…

『Effective Python』Item 33: メタクラスを使ってサブクラスの検証をしよう

『Effective Python』の続き。水際で防げ。 Effective Python › The Bookwww.effectivepython.com 『Effective Python』のChapter 4冒頭に筆者は次のように述べている。 Metaclass are often mentioned in lists of Python's features, but few understand w…

『Effective Python』Item 32: 属性の遅延評価には__getattr__, __getattribute__,__setattr__を使おう

『Effective Python』の続き。ナマケモノでいこう。 Effective Python › The Bookwww.effectivepython.com 遅延評価を__getattr__やgetattribute__、__setattr__で実現できますよ、という話。 __getattr__らは一般に、クラスの属性アクセスを制御するための…

『Effective Python』Item 31: 再利用可能な@propertyメソッドにはディスクリプタを使おう

『Effective Python』の続き。@propertyの限界を超えろ。 Effective Python › The Bookwww.effectivepython.com @propertyデコレータの欠点として再利用ができないというのがある。 テストの成績を管理するクラスを例に説明している。 class Exam(object): d…

『Effective Python』Item 30: 属性をリファクタリングする代わりに@propertyを検討しよう

『Effective Python』の続き。@property大好き一番好きなデコレータです! Effective Python › The Bookwww.effectivepython.com @propertyを使えばクラス全体をリファクタリングすることなく属性のリファクタリングができますよ、という話。 リーキーバケッ…

『Effective Python』Item 29: ゲッターやセッターの代わりに通常の属性を使おう

『Effective Python』の続き。ゲッターやセッターをPythonで実装しちゃうのは素人。 Effective Python › The Bookwww.effectivepython.com 今回からChapter 4「メタクラスと属性」に突入。 タイトルの順序はメタクラスが先であるが、しばらくは属性の話が続…

『Effective Python』Item 28: カスタムコンテナ型はcollections.abcから継承しよう

『Effective Python』の続き。足りないものを補うために。 Effective Python › The Bookwww.effectivepython.com 自作のコンテナを作る際にはlistとかから直接継承するのではなく、collections.abcから継承して作りましょうという話である。 次の二分木にリ…

『Effective Python』Item 27: プライベート属性よりもパブリック属性を使おう

『Effective Python』の続き。Pythonにプライベートなどない。 Effective Python › The Bookwww.effectivepython.com 「Pythonには、パブリックとプライベートという2つのクラス属性があります。(超訳)」からこのItemは始まるが、基本的にはパブリックを使い…

『Effective Python』Item 26: 多重継承はMix-inユーティリティクラスでのみ使おう

『Effective Python』の続き。多重継承は日の目を見るか。 Effective Python › The Bookwww.effectivepython.com 多重継承は一般的に避けましょうとしつつ、どうしても使いたい場合はMix-inを検討しましょうという話である。 Mix-inというとRubyが思い浮かぶ…

『Effective Python』Item 25: 親クラスの初期化にはsuperを使おう

『Effective Python』の続き。親の顔を見てみたい。 Effective Python › The Bookwww.effectivepython.com 子クラスのインスタンスから親クラスの初期化をしたい場合はsuper使え、というタイトルオンリーな話。 クラス階層のメソッドの検索順序はMethod Reso…