Как программно установить строку документации?

У меня есть функция-обертка, которая возвращает функцию. Есть ли способ программно установить строку документации возвращаемой функции? Если бы я мог написать__doc__ Я бы сделал следующее:

def wrapper(a):
    def add_something(b):
       return a + b
    add_something.__doc__ = 'Adds ' + str(a) + ' to `b`'
    return add_something

Тогда я мог бы сделать

>>> add_three = wrapper(3)
>>> add_three.__doc__
'Adds 3 to `b`

Тем не менее, так как__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

Если я создаю этот класс и пытаюсь установить строку документацииtestSomething Я получаю ошибку:

>>> def my_func(): pass
>>> MyTest = makeTestCase('some_filename', my_func)
>>> MyTest.testSomething.__doc__ = 'This should be my docstring'
AttributeError: attribute '__doc__' of 'instancemethod' objects is not writable

Ответы на вопрос(6)

Ваш ответ на вопрос