クラスに後からメソッドを追加
関数を作って、クラスにsetattrすればいいだけです。
Pythonではメソッドと関数はほとんど同じものです。
クラスの中にある関数がメソッドであると考えてよさそうです。
setattrでクラスの中に突っ込むと、途端にただの関数からメソッドに突然、変身します。
from Tkinter import * def write(self, ss): self.insert(END, ss) setattr(Text, "write", write) print write # => <function write at 0x00A59AB0> print Text.write # => <unbound method Text.write> root = Tk() text_ww = Text(root) text_ww.pack() print >> text_ww, "fizzbuzz" print >> text_ww, "buzz" print >> text_ww, "fizz" text_ww.see(END) root.mainloop()
ちなみにこの方法、一旦クラスを変更すると、
同じクラスを使っている、プログラムの他の部分にも影響が波及するので、乱用は禁物です。