Get the docstring from a frame object
我使用以下代码在被调用的方法中获取调用者的方法名称:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import inspect def B(): outerframe = inspect.currentframe().f_back functionname = outerframe.f_code.co_name docstring = ?? return"caller's name: {0}, docsting: {1}".format(functionname, docstring) def A(): """docstring for A""" return B() print A() |
但我也希望从被调用方法中的调用者方法中获取docstring。 我怎么做?
你不能,因为你没有对函数对象的引用。 它是具有
您必须使用文件名和亚麻码信息来尝试对文档字符串可能是什么进行有根据的猜测,但由于Python的动态特性不能保证是正确和最新的。
我不一定会建议它,但你总是可以使用globals()按名称查找函数。 它会是这样的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import inspect def B(): """test""" outerframe = inspect.currentframe().f_back functionname = outerframe.f_code.co_name docstring = globals()[ functionname ].__doc__ return"caller's name: {0}, docsting: {1}".format(functionname, docstring) def A(): """docstring for A""" return B() print A() |