ゆくゆくは有へと

おかゆ/彼ノ∅有生 の雑記

2016-11-01から1ヶ月間の記事一覧

「実践Python3」の Factory method がもやもやする

題のごとし。 ググって理解したところによれば、factory method って「具象クラスごとに、同種手続き(たいてい抽象クラスで定義されてるメソッド)時に呼び出されるクラス可変的なコンストラクタをメソッド化したもの(で、具象クラス実装時に中身が書かれ…

python でリストのパターンマッチっぽい何か

「実践Python3」のコラム見て、ハッと閃いたのでメモ。(Python3.5) シーケンスのアンパックは引数定義のところでよく使われますね。 def func(*args, **keywords): pass みたいな感じで。アンパックはまだ使いみちがあって、入れ子になったシーケンスの内…

__getattribute__とsuperのメモ

ディスクリプタについて勉強してから10か月くらい前か~ iuk.hateblo.jp qiita.com このQiita記事が公式のHowtoディスクリプタよりも詳しい&分かりやすくてよきよき。特に__getattribute__の中身の擬似コードあるのがいいよね。 Effective Python にはディ…

関数がディスクリプタであることを利用してインスタンスに動的にメソッドを追加する

だからタイトル長くない? kk6.hateblo.jp types.MethodType 使えば個々のインスタンスにメソッドを追加できるんだけど、typesをわざわざ import するのもなって感じにもなる。 で、 qiita.com を読んでたら、関数オブジェクト(こいつは非データディスクリ…

propertyはデータディスクリプタだからインスタンス属性辞書より優先される

タイトル長くない? class C(): def __init__(self): self.x = 10 @property def x(self): return self.__dict__["x"] @x.setter def x(self, value): print("eh-eh") self.__dict__["x"] = value データディスクリプタはインスタンス属性辞書よりもアクセス…

__new__ がわからん

メタクラス関連で__new__の使い方はよくみるけど、クラスレベルでの使い方がぐぐってもあんまりなし。 というところに、以下の記事のコメントでやってることが面白かったので、似たことを検証がてらメモ。 qiita.com class A(): def __new__(cls, value): pr…

メタクラスで@propertyを使ってクラスプロパティをつくる

クラスプロパティってできんのかな~と思って調べていた。 fakatatuku.hatenablog.com なるほどな~と思いつつ、この記事を読み返していた。 postd.cc プロパティって(というかディスクリプタって)、インスタンスの生成元クラスのアトリビュートとして登録…

Effective Python 項目31 メモ ※追記 35

項目31 で、ディスクリプタがクラス属性だから各インスタンス間で共有されちゃうという問題があって、 それに対して、ディスクリプタが保持する状態を辞書にして、各インスタンスをキーとして保管しておこうっていう方策に出ているわけですが、 それだとその…

ロジバン slabu gerna の selbritcita まわりと複合タグ

ちょっと需要があるようなので、まとめておきます。 基本的には、CLL 日本語抄訳の目次にある 現行文法のPEGの解説 を元にしていきます*1。 といいつつも、有名なパーサが微妙に(もっぱらバグ取りを目的として)変更を加えてる点も知っておく必要があると思…