Hatena::Grouppython

HM python

Pythonについて覺えたことや疑問に思ったこと、及び參考にしたリソースをメモして行く感じで。面倒なのでマーク附けは最小限に。

 | 

2006-05-30

組込みのクラスにメソッドを追加とか再定義とかしたかったらしい

Rubyで言ふところの

class String
  def f
    p self
  end
end

みたいなこと(組込みクラスへのクラスの定義の追加Rubyリファレンスマニュアル - クラス/メソッドの定義)がしたい。new.instancemethod()を使へば出來るかも……?

>>> import new
>>>
>>> def f(self):
...     print self
...
>>> str.f = new.instancemethod(f, None, str)
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: can't set attributes of built-in/extension type 'str'

出來なかった。殘念。

參考

 | 
MORIYAMA Hiroshi <hiroshi@kvd.biglobe.ne.jp>