这就是我需要的:
def get_invoker():
# your magic here
# invoker.py
def f():
invoker = get_invoker()
print(invoker)
# module1.py
class C(object):
def invoke_f(self):
f()
f()
# print <module1>
c = C()
c.invoke_f()
# print C.invoke_f
可能吗?我知道
inspect
拥有所有这些魔力,但是我找不到它。编辑:
我想获取函数对象(或模块)。不只是名字。
最佳答案
像这样:
>>> import inspect
>>> def called_function():
... print inspect.stack()[1][3]
...
>>> def caller():
... called_function()
...
>>> caller()
caller