Python 3.6的数据类模块的回滚版本
项目描述
这是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 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8479067f342acf957dc82ec415d355ab5edb7e7646b90dc6e2fd1d96ad084c97 |
|
MD5 | c9a52e322ada1406bfde9ebe3cdbbcca |
|
BLAKE2b-256 | 1f127919c5d8b9c497f9180db15ea8ead6499812ea8264a6ae18766d93c59fe5 |
dataclasses-0.8-py3-none-any.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0201d89fa866f68c8ebd9d08ee6ff50c0b255f8ec63a71c16fda7af82bb887bf |
|
MD5 | 0d6e5bb7adcc8fb0de3ef1ace1b32999 |
|
BLAKE2b-256 | feca75fac5856ab5cfa51bbbcefa250182e50441074fdc3f803f6e76451fab43 |