我有一些现有的Python3.6代码,我想要转移到Python3.7数据类。我有__init__
方法和漂亮的文档字符串文档,指定构造函数的属性和它们的类型。
但是,如果我将这些类更改为使用3.7中的新Python数据类,则构造函数是隐式的。在这种情况下,我如何提供构造函数文档?我喜欢数据类的想法,但如果我必须放弃清晰的文档才能使用它们,我就不喜欢了。
经过编辑以澄清我目前使用的是文档字符串
发布于 2018-07-02 02:06:09
数据类的主要优势是它们是自文档化的。假设您的代码的读者知道数据类是如何工作的(并且您的属性得到了适当的命名),那么带类型注释的类属性应该是构造函数的优秀文档。请参阅官方dataclass docs中的此示例
@dataclass
class InventoryItem:
'''Class for keeping track of an item in inventory.'''
name: str
unit_price: float
quantity_on_hand: int = 0
def total_cost(self) -> float:
return self.unit_price * self.quantity_on_hand
如果您不希望代码的读者知道数据类是如何工作的,那么您可能希望重新考虑使用它们,或者在@dataclass
装饰器后面的内联注释中添加解释或文档链接。如果您确实需要一个数据类的docstring,我建议将构造函数docstring放在docstring类中。对于上面的示例:
'''Class for keeping track of an item in inventory.
Constructor arguments:
:param name: name of the item
:param unit_price: price in USD per unit of the item
:param quantity_on_hand: number of units currently available
'''
https://stackoverflow.com/questions/51125415
复制相似问题