我想从函数内部打印python函数的docstring。 例如
def my_function(self):
"""Doc string for my function."""
# print the Docstring here.
目前,我是在定义了my_function
之后直接这样做的。
print my_function.__doc__
但宁愿让这个函数自己来做。
我试过在函数中调用print self.__doc__
print self.my_function.__doc__
和print this.__doc__
,但这不起作用。
只要不更改绑定到名称
my_func
的对象,这就可以工作。你这样做的情况很少见,但确实发生了。
但是,如果您编写这样的装饰器:
现在您可以这样做:
这将确保您的函数获得对自身的引用(类似于
self
)作为其第一个参数,因此它始终可以获得正确函数的docstring。如果在方法上使用,通常的self
将成为第二个参数。这应该有效(在我的测试中,它也包括输出)。你也许可以用
__doc__
代替getdoc,但我喜欢它,所以这正是我使用的。而且,这不需要知道类/方法/函数的名称。一个类、一个方法和一个函数的例子。如果不是你想要的,告诉我:)
这是有效的:
在Python2.7.1中
这也适用于:
然而,这不会单独起作用:
名称错误:未定义全局名称“my_function”
相关问题 更多 >
编程相关推荐