Python 3.7 dataclasses -- 数据类 之 field

定义
对于常见和简单的用例,不需要其他功能。但是,有些数据类功能需要额外的每字段信息。为了满足这种对附加信息的需求,你可以通过调用提供的 field() 函数来替换默认字段值。

用法
提供了一个方法field(),如果通过调用 field() 指定字段的默认值,则该字段的类属性将替换为指定的 default 值。如果没有提供 default ,那么将删除类属性。目的是在 dataclass() 装饰器运行之后,类属性将包含字段的默认值,就像指定了默认值一样。

语法:

dataclasses.field(*, default=MISSING, default_factory=MISSING, repr=True, hash=None, init=True, compare=True, metadata=None)

 MISSING 值是一个 sentinel 对象,用于检测是否提供了 default 和 default_factory 参数。 使用此 sentinel 是因为 None 是 default 的有效值。任何代码都不应直接使用 MISSING 值。

参数:

  • default :如果提供,这将是该字段的默认值。这是必需的,因为 field() 调用本身会替换一般的默认值。

  • default_factory :如果提供,它必须是一个零参数可调用对象,当该字段需要一个默认值时,它将被调用。除了其他目的之外,这可以用于指定具有可变默认值的字段,如下所述。 同时指定 default 和 default_factory 将产生错误。

  • init :如果为true(默认值),则该字段作为参数包含在生成的 __init__() 方法中。

  • repr :如果为true(默认值),则该字段包含在生成的 __repr__() 方法返回的字符串中。

  • compare :如果为true(默认值),则该字段包含在生成的相等性和比较方法中( __eq__() , __gt__() 等等)。

  • hash :这可以是布尔值或 None 。如果为true,则此字段包含在生成的 __hash__() 方法中。如果为 None (默认值),请使用 compare 的值,这通常是预期的行为。如果字段用于比较,则应在 hash 中考虑该字段。不鼓励将此值设置为 None 以外的任何值。

    设置 hash=False 但 compare=True 的一个可能原因是,如果一个计算 hash 的代价很高的字段是检验等价性需要的,但还有其他字段可以计算类型的 hash 。 即使从 hash 中排除某个字段,它仍将用于比较。

  • metadata :这可以是映射或 None 。 None 被视为一个空的字典。这个值包含在 MappingProxyType() 中,使其成为只读,并暴露在 Field 对象上。数据类根本不使用它,它是作为第三方扩展机制提供的。多个第三方可以各自拥有自己的键值,以用作元数据中的命名空间。

参考文档:https://docs.python.org/zh-cn/3/library/dataclasses.html

 

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python 3.7 和 opencv-python 是两个不同的库,分别用于不同的用途。 Python 3.7 是一种编程语言,它是 Python 编程语言系列的最新版本。Python 是一种高级编程语言,具有简洁、易学、易读的特点,被广泛应用于科学计算、数据分析、人工智能、网络编程等领域。Python 3.7Python 语言的一个新版本,增加了一些新的功能和语法,提高了性能和稳定性。 而 opencv-python 是一个基于 Python 的开源计算机视觉库,它提供了一系列用于图像处理和计算机视觉任务的函数和工具。opencv-python 扩展了 Python 的功能,使得开发者可以轻松地处理图像和视频数据,进行图像处理、特征提取、目标检测、图像识别等任务。它被广泛应用于计算机视觉、机器学习、人工智能等领域。 Python 3.7 和 opencv-python 可以配合使用,以完成图像处理和计算机视觉相关的任务。通过使用 Python 3.7 编写代码,并借助 opencv-python 提供的函数和工具,我们可以实现图像的读取、保存、处理、显示等操作,还可以进行目标检测、特征提取、图像识别等高级计算机视觉任务。 在使用 Python 3.7 和 opencv-python 时,我们需要确保安装了正确的版本。Python 3.7 可以通过官方网站下载并安装。而 opencv-python 可以通过 pip 命令安装,例如使用以下命令安装最新版本: pip install opencv-python 然后,我们可以在 Python 3.7 的环境中导入 opencv-python 函数库,并使用其中的函数和工具进行图像处理和计算机视觉任务的实现。 总之,Python 3.7 和 opencv-python 是分别用于编程和计算机视觉的两个库,它们可以配合使用,以实现图像处理和计算机视觉相关的任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值