一个python docstring必须作为一个文字字符串给出;但有时对于几个函数(例如,不同的构造函数)具有相似的文档字符串是有用的,或者多个访问方法可能接受相同的参数列表(然后依赖于相同的隐藏方法),因此使用相同的无处不在的描述。对于这种情况,我可以通过分配给__doc__
构建一个文档字符串,我通过一个简单的装饰器来完成。该系统工作非常好(在Python 2中),我很高兴它是多么简单,清晰和封装好。使用装饰器修改python文档字符串:这是个好主意吗?
问题:这是个好主意吗?特别是,有没有工具可能会被这种设置混淆(例如,从源代码提取文档而不是从字节代码中提取文档的东西)。该解决方案是否仍然在Python 3中工作?是否有其他原因或情况会导致这种不适宜?
“不同的构造函数”?我假设你的意思是某种工厂函数,因为你只能有一个'__init__'。 – 2012-03-16 22:37:57
我不认为“工厂功能”是正确的。我指的是一个类的静态成员,它创建了同一个类的一个实例。它们都是使用直接支持的语言的多态构造函数。但是,工厂功能可能是另一种用例。 – alexis 2012-03-17 10:55:44
我会考虑那些工厂,是的。除了命名空间之外,静态成员函数和免费函数(使用C++术语)之间没有任何区别。尽管Python有独立的“类方法”和“静态方法”概念。 – 2012-03-17 12:21:43