関数は、func_codeというattributeにcode objectなるものが入っているそうな。
これが実際に行う処理を持っているようなので、呼び出したときの処理をここで変更することができる。
>>> def hoge(): ... print 'hoge' ... >>> def fuga(): ... print 'fuga' ... >>> hoge() hoge >>> fuga() fuga >>> hoge.func_code = fuga.func_code >>> hoge() fuga >>>
なるほどねー。こんなことができるのか。
だんだんPythonが面白くなってきたw