问题标签 [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 - 使用 Dataclass 并获取 AttributeError:'int' 对象没有属性 'x'
尝试从.
以此作为测试示例:
运行代码时,出现错误: AttributeError: 'int' object has no attribute 'x' 尝试将 return 添加到 def;同样的错误。
python - pylint 似乎不适用于数据类中定义的字典
pylint 似乎无法识别数据类中定义的字典。
考虑以下代码:
在 pylint 下,这会产生以下错误。
我尝试使用typing.Dict[int, int]
as 类型注释,它仍然给出相同的错误。
关于如何使 pylint 在上述情况下识别集合类型的任何建议?
python - 如何使非冻结数据类冻结,反之亦然?
我想知道使以下数据类bar
冻结的任何简单方法。
换句话说,我想要以下功能some_fn_to_freeze
并且,反函数some_fn_to_unfreeze
python - 在 Cython 中使用数据类
我正在使用 cython 进行代码混淆,因此目前性能不是问题。问题在于使用数据类。
当 cythonize 包含数据类定义的代码时,编译期间没有错误。但是在运行代码时,我得到一个TypeError: <field> is a field but has no type annotation.
这是我试图 cythonize 的代码:
在没有 cythonization 的情况下运行代码可以正常工作。但是在cythonization之后,我收到以下错误消息:
有没有办法在不重写源代码或只重写源代码的情况下避免这个问题?
python - 检查一个类是否是 Python 中的数据类
如何检查一个类是否dataclass
在 Python 中?
我发现我可以检查__dataclass_fields__
和__dataclass_params__
属性的存在,但我很想找到一种更优雅的方法来做到这一点。
我希望使用类似inspect.isclass
函数的东西。例如,可能是类似的东西inspect.isdataclass
。
Python有类似的东西吗?
谢谢。
python - Python Dataclasses:FrozenInstanceError 是 AttributeError 的子类?
我正在对新的 python 数据类进行一些自学。
可以传递给数据类装饰器的参数之一是frozen=True,以使对象不可变。
文档(和经验)表明:
将引发异常。
当单元测试时(使用pytest),以下测试通过:
其中 PageURL 是一个带有 freeze=True 参数的数据类。
任何想法为什么 pytest 表明此操作(为 page_url.value 分配值)会引发属性错误?FrozenInstanceError 是否继承自 AttributeError?
注意:如果我更改单元测试以测试不同的异常(即 TypeError),测试会按预期失败。
python - 如何在 python 中演化数据类?
我有兴趣使用数据类,因为语法比 attr 短。但是,我找不到提供 API 来发展它的快捷方式,例如使用以下代码:
是否容易找到开箱即用的替代品?还是自己实施?
python - 如何确定数据类中的字段是否具有默认值或是否已显式设置?
我有一个dataclass
我想知道每个字段是否被显式设置或者它是否由default
或填充default_factory
。
我知道我可以使用所有字段dataclasses.fields(...)
,这可能适用于使用的字段,default
但对于使用default_factory
.
我的最终目标是合并两个数据类实例A和B。而B应该只覆盖A使用默认值的A的字段。
用例是一个可以在多个位置指定的配置对象,其中一些位置的优先级高于其他位置。
编辑:一个例子
我想检测到它conf1.foo
正在使用默认值并且conf2.foo
&conf3.foo
是明确设置的。
python - 有没有办法输入递归数据类?
假设您有以下数据类
这是不可能的,因为Task
尚未声明。
我正在使用 Python 3.6 w/ dacite
+dataclasses
将大型字典解析为数据类。
目前我一直在这样做:
我想知道是否有办法以subTasks
某种方式键入以使其知道它也是一个List[Task]
对象,而不是泛型List