特異メソッド
- nelnal@programming: インスタンスにメソッドを追加 (http://d.hatena.ne.jp/nelnal_programing/20071107/1194398329)
- プログラミング日記: 結合メソッドと非結合メソッド (http://d.hatena.ne.jp/morchin/20071013#p1)
特異メソッドできるんだあ!すばらしい!2007/10/13日の自分の日記に追記しておいた。
しかし、実装を見てみるとnew.pyの中では
from types import MethodType as instancemethod
となっていて、types.pyの中では
class _C: def _m(self): pass ClassType = type(_C) UnboundMethodType = type(_C._m) # Same as MethodType _x = _C() InstanceType = type(_x) MethodType = type(_x._m)
となっている。何故かdocstringどこにも定義されていないのにdocstringを持っている。何でシグネチャが
>>> print new.instancemethod.__doc__ instancemethod(function, instance, class) Create an instance method object.
となるのか分からない…。それにしてもtypeの威力はすごい!