python vector 初始化_一文带你走进Python中的数据类

全文共2607字,预计学习时长14分钟

9a30f58d5050e7ec69df5e7113c9b234.png

图源:unsplash

数据类适用于Python3.7或更高版本,它不仅可以用作数据容器,还可以编写样板代码,简化创建类的过程。

31f04afc43b5182d89995b18c54201d5.png

创建第一个数据类

创建一个数据类,该数据类表示三维坐标系中的一个点。

@dataclass装饰器用于创建数据类。x,y和z是数据类中的字段。注意要使用类型注释来指定字段的数据类型,但是类型注释不是静态类型声明,这意味着仍然可以为x,y或z字段传递除int之外的任何数据类型。

from dataclasses import dataclass             @dataclass           classCoordinate:              x: int              y: int              z: int

默认情况下,数据类附带有init、repr和 eq方法,因此我们不必自己实现。但是如果init、repr和eq没有在Coordinate类中实现,有了数据类,我们仍然可以使用这些方法,这样非常节省时间。

from dataclasses import dataclass             @dataclass           classCoordinate:              x: int              y: int              z: int             a =Coordinate(4, 5, 3)           print(a)  # output: Coordinate(x=4, y=5, z=3)

字段的默认值

编码者可以为字段分配默认值。如下所示,数据类中的pi字段被分配了默认值:

from dataclasses import dataclass             @dataclass           classCircleArea:              r: int              pi: float =3.14                 @property              defarea(self):                   return self.pi * (self.r **2)             a =CircleArea(2)           print(repr(a))  # output: CircleArea(r=2, pi=3.14)           print(a.area)  # output: 12.56

自定义

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值