python小技: 今中にいるこの関数を参照する
走らせるとこうなる
import sys
def foo():
this_fun_name=sys._getframe().f_code.co_name
this_module=__import__(__name__, fromlist=['hoge'])
print getattr(this_module, this_fun_name)
私を呼んでいる関数も参照できる。
def bar():
fn=sys._getframe(1).f_code.co_name
this_module=__import__(__name__, fromlist=['hoge'])
print getattr(this_module, fn)def baz():
bar()baz()
色々な楽しい乱用の仕方が浮んでくるね。
スタックの探索は気をつけてやろう。