【发布时间】:2011-11-16 01:18:12
【问题描述】:
我正在动态创建一些类,我希望它们具有不同的文档字符串。我有:
def make_class(class_docstring):
class X:
pass
X.__doc__ = class_docstring
return X
这不起作用,因为文档字符串是只读的。然后,我尝试了:
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属性的正确方法是什么?
【问题讨论】:
-
您的第一种方法效果很好。为什么你认为文档字符串是只读的?他们不是。
-
也就是说,至少在 Python 2.x 中。你在使用 Python 3 吗?
标签: python python-3.x