我正在动态创建一些类,我希望它们具有不同的文档字符串。我有:
def make_class(class_docstring):
class X:
pass
X.__doc__ = class_docstring
return X
这不起作用,因为docstrings是只读的。然后,我试过了:
def make_class(class_name, class_docstring):
class X:
def __init__(self):
super().__init__()
d = {'__doc__': class_docstring}
d.update(X.__dict__)
return type(class_name, (), d)
ClassName = make_class(
'ClassName',
"""
Some docstring...
""")
直到必须拨打super
。
动态设置docstring属性的正确方法是什么?
答案 0 :(得分:5)
您可以在类中设置docstring。
>>> def make_class(class_docstring):
... class X:
... __doc__ = class_docstring
... return X
...
>>> x = make_class('test doc')
>>> x
<class '__main__.X'>
>>> xx = x()
>>> xx.__doc__
'test doc'
我不确定为什么你的第二次尝试失败了。