首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Python数据类记录类的构造函数?

如何使用Python数据类记录类的构造函数?
EN

Stack Overflow用户
提问于 2018-07-02 01:21:23
回答 1查看 15.7K关注 0票数 33

我有一些现有的Python3.6代码,我想要转移到Python3.7数据类。我有__init__方法和漂亮的文档字符串文档,指定构造函数的属性和它们的类型。

但是,如果我将这些类更改为使用3.7中的新Python数据类,则构造函数是隐式的。在这种情况下,我如何提供构造函数文档?我喜欢数据类的想法,但如果我必须放弃清晰的文档才能使用它们,我就不喜欢了。

经过编辑以澄清我目前使用的是文档字符串

EN

回答 1

Stack Overflow用户

发布于 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
'''
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51125415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档