跳转到主要内容

Python 3.6的数据类模块的回滚版本

项目描述

https://img.shields.io/pypi/v/dataclasses.svg

这是PEP 557,数据类的实现。它是Python 3.6的回滚版本。由于数据类将包含在Python 3.7中,因此有关数据类功能的任何讨论都应在https://mail.python.org/mailman/listinfo/python-dev的python-dev邮件列表上进行。在此阶段,此存储库仅应用于历史目的(它是原始数据类讨论发生的地方)以及讨论实际回滚到Python 3.6的情况。

有关数据类如何工作的详细信息,请参阅https://pythonlang.cn/dev/peps/pep-0557/

测试文件可以在https://github.com/ericvsmith/dataclasses/blob/master/test/test_dataclasses.py或sdist文件中找到。

安装

pip install dataclasses

示例用法

from dataclasses import dataclass

@dataclass
class InventoryItem:
    name: str
    unit_price: float
    quantity_on_hand: int = 0

    def total_cost(self) -> float:
        return self.unit_price * self.quantity_on_hand

item = InventoryItem('hammers', 10.49, 12)
print(item.total_cost())

一些额外的工具可以在sdist中找到的dataclass_tools.py中找到。

兼容性

此回滚假设字典对象保留其插入顺序。在Python 3.7及其以上版本的语言规范中是正确的。由于这是一个回滚到Python 3.6的版本,因此提出了一个有趣的问题:这个保证是否适用于3.6?对于CPython 3.6,它确实如此。截至本文写作的时间,对于所有声称与3.6兼容的其他Python实现,这也是正确的,其中没有一个是新的3.6实现。任何新的3.6实现都应该有有序字典。请参阅此电子邮件末尾的分析

https://mail.python.org/pipermail/python-dev/2017-December/151325.html

从版本0.4开始,此代码不再与Python 3.7兼容。对于3.7,请使用内置的数据类模块。

发布历史

版本

日期

描述

0.8

2020-11-13

修复 .replace() 中的 ClassVar

0.7

2019-10-20

仅要求 Python 3.6

0.6

2018-05-17

相当于Python 3.7.0rc1

0.5

2018-03-28

相当于Python 3.7.0b3

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

dataclasses-0.8.tar.gz (36.6 kB 查看哈希)

上传时间

构建分布

dataclasses-0.8-py3-none-any.whl (19.0 kB 查看哈希)

上传时间 Python 3

由以下机构支持