Python 在类方法中重用函数docstring
我有两个文件夹:a和b。在文件夹a中,我有一个名为fun1的函数。在文件夹b中,我有一个名为class1的类。在class1中有一个名为meth1的方法。方法meth1从文件夹a返回fun1 如何在meth1中使用fun1的docstring而不重新编写docstring 我试过的如下,但不起作用 文件夹a 文件夹b 您可能需要助手:Python 在类方法中重用函数docstring,python,Python,我有两个文件夹:a和b。在文件夹a中,我有一个名为fun1的函数。在文件夹b中,我有一个名为class1的类。在class1中有一个名为meth1的方法。方法meth1从文件夹a返回fun1 如何在meth1中使用fun1的docstring而不重新编写docstring 我试过的如下,但不起作用 文件夹a 文件夹b 您可能需要助手: def func1(): """ docstring of fun1 """ pass def doc_setter(origi
def func1():
"""
docstring of fun1
"""
pass
def doc_setter(origin):
def wrapper(func):
func.__doc__ = origin.__doc__
return func
return wrapper
class class1:
@doc_setter(func1)
def meth1(self):
return func1
它也可以是一个选项,但带有辅助对象的变体更好:
class class1:
def meth1(self):
return fun1
class1.meth1.__doc__ = fun1.__doc__
很抱歉,我不得不告诉你这个坏消息,但是你的想法是错误的。如果meth1返回fun1,那么它不应该有相同的docstring,一个会说,例如,返回一个函数,另一个不会。如果meth1实际上总是调用fun1,那么您根本不应该使用meth1。如果meth1只是偶尔调用fun1,那么它也不应该有相同的docstring。总而言之:meth1应该有一个不同的docstring,或者它不应该首先存在。我在类外有函数,因为它们非常大,并且做了很多数学运算。我在类中调用它们来为最终用户创建GUI。我上面提供的示例非常简单。谢谢你的意见。谢谢。
def func1():
"""
docstring of fun1
"""
pass
def doc_setter(origin):
def wrapper(func):
func.__doc__ = origin.__doc__
return func
return wrapper
class class1:
@doc_setter(func1)
def meth1(self):
return func1
class class1:
def meth1(self):
return fun1
class1.meth1.__doc__ = fun1.__doc__