我有一个返回函数的包装函数.有没有办法以编程方式设置返回函数的docstring?如果我可以写信,__doc__我会做以下事情:
def wrapper(a):
def add_something(b):
return a + b
add_something.__doc__ = 'Adds ' + str(a) + ' to `b`'
return add_something
Run Code Online (Sandbox Code Playgroud)
然后我就能做到
>>> add_three = wrapper(3)
>>> add_three.__doc__
'Adds 3 to `b`
Run Code Online (Sandbox Code Playgroud)
但是,由于__doc__是只读的,我不能这样做.什么是正确的方法?
编辑:好的,我想保持这个简单,但当然这不是我真正想要做的.虽然一般来说__doc__在我的情况下是可写的但事实并非如此.
我正在尝试unittest自动创建测试用例.我有一个包装函数,它创建一个类对象,它是以下的子类unittest.TestCase:
import unittest
def makeTestCase(filename, my_func):
class ATest(unittest.TestCase):
def testSomething(self):
# Running test in here with data in filename and function my_func
data = loadmat(filename)
result = my_func(data)
self.assertTrue(result > 0)
return ATest
Run Code Online (Sandbox Code Playgroud)
如果我创建这个类并尝试设置docstring testSomething我得到一个错误: …