喜欢这个问题:最好的方法是让Django的login_required成为默认值
我现在正在使用Flask-Login的是login_required装饰器.反正有没有把它作为默认行为Flask?
我想编写一个返回调用函数的函数:
def foo():
return get_calling_function() #should return 'foo' function object
Run Code Online (Sandbox Code Playgroud)
网上有很多示例如何获取调用函数的名称,但没有如何获取实际对象。我想出了以下获取名称的解决方案,然后在调用函数的全局命名空间中查找它。但是,这不适用于类函数,因为您还需要类名,而且我认为还有许多其他边缘情况。
from inspect import stack
def get_calling_function():
return stack()[2][0].f_globals[stack()[1][3]]
Run Code Online (Sandbox Code Playgroud)
那么任何建议如何或是否可以编写此函数以使其通用(在 Python 3 上,顺便说一句)?谢谢。