python声明值对象

Python 3.7引入了dataclasses模块,提供了一种创建值对象的简洁方式,它基于dict而非tuple。dataclass通过定义默认的repr和eq方法,以及通过设置frozen=True使类变得不可变,比如在Point2D类中。相较于NamedTuple,dataclass提供了更多灵活性。官方文档提供了详细使用指南。
摘要由CSDN通过智能技术生成

Since python 3.7 there is a new built in module called dataclasses which has the dataclass class in it.

Pycharm supports it and knows how to work with it.

It is a perfect fit for a value object, since it already defines a lot of what you would define for a value object and the syntax is really short:

  • repr
  • eq

making the class immutable by passing Frozen=True
example:

from dataclasses import dataclass
@dataclass(frozen=True)
class Point2D:
    x: float
    y: float

There are differences between NamedTuple and Dataclasses which most notably one is based on a tuple and the other one on a dict.

In my opinion, the dataclass is the best code generator ATM to create a value object.

For more info, continue with python’s docs about how to use a dataclass.

官方文档:https://docs.python.org/3.7/library/dataclasses.html
https://docs.python.org/3.7/library/collections.html?highlight=namedtuple#collections.namedtuple

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值