如何使用Python数据为类编写构造函数?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (26)

我有一些现有的Python 3.6代码,我想转移到Python 3.7数据类。我有一些__init__方法,包含很好的文档字符串文档,指定构造函数所采用的属性及其类型。

但是,如果我将这些类更改为使用3.7中的新Python数据类,则构造函数是隐含的。在这种情况下如何提供构造函数文档?我喜欢数据类的概念,但是如果我不得不放弃明确的文档来使用它们,则不是。

提问于
用户回答回答于

示例:

@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装饰器之后的内联注释中添加对文档的解释或链接。如果你真的需要一个数据类的文档字符串,我建议把构造函数的文档字符串放在类的文档字符串中。对于上面的例子:

'''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
'''

扫码关注云+社区

领取腾讯云代金券