问题标签 [python-dataclasses]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 验证 python 数据类中的详细类型
Python 3.7 不久前发布了,我想测试一些花哨的新dataclass
+ 打字功能。typing
使用本机类型和模块中的类型,让提示正常工作很容易:
但我想尝试的另一件事是在运行时强制类型提示作为条件,即不应该dataclass
存在类型不正确的 a 。它可以很好地实现__post_init__
:
这种validate
函数适用于原生类型和自定义类,但不适用于typing
模块指定的那些:
有没有更好的方法来验证一个无类型列表和一个类型的列表typing
?最好是不包括检查任何list
, dict
,tuple
或' 属性set
中所有元素的类型。dataclass
几年后重新审视这个问题,我现在开始使用pydantic
在我想要验证通常只为其定义数据类的类的情况下。不过,我会用当前接受的答案留下我的印记,因为它正确回答了原始问题并具有出色的教育价值。
python - 是否可以在数据类中使用 *args?
我最近开始使用数据类,它们将是 3.7 的一个很好的补充。我很好奇是否或如何使用数据类重新创建此类的相同功能。
这行不通。引发异常TypeError: __init__() missing 1 required positional argument: 'submenus'
我认为这是因为该类没有解包参数的说明。 有什么方法可以指示数据类装饰器需要解压缩子菜单吗?
python - 数据类和属性装饰器
我一直在阅读 Python 3.7 的数据类作为命名元组的替代品(我通常在必须对结构中的数据进行分组时使用它)。我想知道数据类是否与属性装饰器兼容,以便为数据类的数据元素定义 getter 和 setter 函数。如果是这样,这是在某处描述的吗?或者有没有可用的例子?
python - Python 3.7:数据类和 SimpleNameSpace 的实用程序
Python 3.7 提供了dataclasses
具有预定义特殊功能的新功能。
从概述的角度来看,dataclasses
两者SimpleNamespace
都提供了很好的数据封装工具。
很多时候我SimpleNamespace
只是用来包装数据并移动它。
我什至将其子类化以添加特殊功能:
对于我的问题:
- 有人如何在 和 之间
SimpleNamespace
进行选择dataclasses
? - 为什么它们是必要的,当扩展
SimpleNamespace
? - 所有其他用例都
dataclasses
迎合什么?
python - Python 3.7:数据类不会为 `eq=False` 引发 `TypeError`
我正在尝试dataclasses
Python 3.7中的新功能
装饰器dataclass
可以传递参数来控制添加到类中的 dunder 函数。
出于某种原因,装饰者似乎没有提出TypeError
争论eq=False
。
根据文档:
如果我理解正确,如果我通过eq = False
,__eq__
将不会添加函数,并且TypeError
在比较同一类的两个实例时应该抛出 a 。相反,该eq
参数似乎没有效果。
上面没有提出TypeError
并且总是评估为False
。
其他参数(例如:order
,repr
)似乎表现如预期
我的理解有差距吗?
我正在使用泊坞窗图像python/rc-stretch
python - 如何使用 Python 数据类记录类的构造函数?
我有一些现有的 Python 3.6 代码,我想转移到 Python 3.7 数据类。我有__init__
很好的文档字符串文档的方法,指定构造函数采用的属性及其类型。
但是,如果我将这些类更改为使用 3.7 中的新 Python 数据类,则构造函数是隐式的。在这种情况下,我如何提供构造函数文档?我喜欢数据类的想法,但如果我不得不放弃清晰的文档来使用它们,我就不喜欢了。
编辑以澄清我目前正在使用文档字符串
python - 导入数据类模块失败
今天我从 apt-get 安装了 python 3.7 来试用新的 dataclasses 模块。我单独安装了它,因为 python3.6 不能升级到 3.7。
当我输入:python3.7 --version
时,它给了我:>>> Python 3.7.0a2
作为我当前的版本。
问题是我似乎无法导入数据类。
我的导入声明是:from dataclasses import dataclass
按照此处的说明
这是它给我的错误信息:
我什至尝试使用 pip3: 安装数据类模块pip3 install dataclasses
。不确定这是否有必要。
关于可能是什么问题的任何建议?
[编辑] 刚刚用 python3.6 控制台试了一下,效果很好……很奇怪。
python - Python 3.7:使用数据类模块初始化对象?
这是我在 python 3.6 中的代码
我想重写这段代码python 3.7
,如何self._int_a: int = int(a)
用dataclasses
模块初始化?
我知道我可以做类似的事情,但我不知道如何初始化_a: int = int(a)
或类似的事情。
提前感谢您的想法和建议。
python - 数据类定义中的引用类类型
是否可以引用当前在类定义中定义的类?
错误: