昨日までのあらすじ

Effective Pythonを真面目に読もうと思ったので読みはじめました。

4章 メタクラスと属性

まずは、 メタクラス とはなんでしょうか?

困ったときは、Python文法詳解を読みます。さすが姉妹本です。

class type(name, bases, dict)

組み込み関数の type() を利用すると動的にクラスが作れる。型オブジェクトの型となるようなクラスをメタクラスと呼ぶそうです。へー。

def method(self, arg):
    print(self, arg)


Spam = type('Spam', (), {'ham':method, 'egg':100})

a = Spam()
a.ham(50)
print(a.egg)
print(type(a))
100
<__main__.Spam object at 0x10382d080> 50
<class '__main__.Spam'>

文法はわかりました。 あとで、[Python] メタクラスをたおした - くろのても読みます。

メタクラスは今のところ使わなそうなので飛ばします。ついでに5章の平行性と並列性もいったん飛ばし。