问题标签 [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.

0 投票
3 回答
2109 浏览

python - 如何在 Python 3.7+ 中定义循环依赖的数据类?

假设class A有一个类型为 的成员class B,并且class B有一个类型为 的成员class A

在 Scala 或 Kotlin 中,您可以在这种情况下以任何顺序定义类而无需担心,因为第一个定义的类可以照常使用第二个定义的类,即使在案例/数据类中也是如此。

但是在 Python 中,下面的代码

抛出编译错误,因为class B在定义时class A未定义。

您可以解决这个简单的案例,就像在这个答案中一样

但是,这种方式不适用于 Python 中的数据类,因为在定义数据类之后分配成员不会更新数据类的自动生成方法,这使得“数据类”的使用毫无用处。

我怎样才能避免这个问题?

0 投票
1 回答
644 浏览

typechecking - Python 3.7 嵌套数据类 mypy 类型检查错误

根据我猜的功能,这段代码是正确的。但是,当我运行时mypy src --ignore-missing-imports,我收到以下错误:

如果有人能帮助我克服这个问题,那将会很有帮助。谢谢

0 投票
3 回答
207 浏览

python - 如何访问 python 数据类的默认参数中的另一个参数?

我正在尝试导出id_from的默认值,name反之亦然。

我应该能够像这样调用类:

id_如果可能的话,我还希望课程在同时提供和时引发错误name

关于我应该如何去做的任何建议?

0 投票
1 回答
1714 浏览

python - 如何在 python3 数据类中断言类型?

我正在使用允许指定类字段的类型的新dataclass功能。Python3在这个例子中,field2 应该是 List[int] 类型,我将 List[str] 传递给它。这段代码运行没有失败,我想知道如果将错误的类型传递给类,是否有(自动)方法使代码失败(即使用断言等)。

0 投票
2 回答
156 浏览

python - 使用数据类和字典来解决“盒子问题”

该项目是使用特定算法将项目分类到盒子中。我无法使用字典将项目作为值放入给定的框中。我的主要问题是,当字典中有多个值时,我无法弄清楚如何检索字典中键的 1 个值。我的第二个问题是我担心我的程序过于复杂并创建了不必要的功能。

我在使用此功能时遇到问题,尤其是:

对于上下文,这是我的代码

这是文本文件的示例:pastebin

0 投票
2 回答
497 浏览

python-3.x - 正确使用数据类返回项目的值

该项目是使用特定算法将项目分类到盒子中。在将每个项目分配给适当的类后,我遇到了麻烦,以返回另一个函数并使用和修改数据类中对象中保存的数据。

我的测试文件如下所示:

我的课程:

这是我阅读文本文件并将其传输到班级的地方:

未实现的算法:

我的问题是我确实知道如何从我的算法中的 fileReader 函数读取解析的数据。功能。

0 投票
1 回答
1298 浏览

python - 数据类子类不继承 __repr__

我正在使用dataclasses从 Python 3.7 向后移植的 Python 模块。我偶然发现了数据类子类不继承的这种行为__repr__

这是输出

1)为什么会这样?
2)这种行为是否有解决方法(__repr__在子类中重新定义除外)?

0 投票
1 回答
1351 浏览

python - 如何使用数据类避免意外参数警告?

我有以下简单的代码。

我不明白为什么 PyCharm 会突出显示这一行: return cls(a=False, b=False, c=False)withunexpected argument

我做错了吗?

0 投票
14 回答
82027 浏览

python - 来自嵌套字典的 Python 数据类

3.7 中的标准库可以递归地将数据类转换为字典(来自文档的示例):

我正在寻找一种在嵌套时将字典转回数据类的方法。C(**tmp)只有当数据类的字段是简单类型而不是数据类本身时,类似的东西才有效。我熟悉 [jsonpickle][1],但它带有一个突出的安全警告。


编辑:

答案建议使用以下库:

  • 英安
  • mashumaro(我用了一段时间,效果很好,但我很快就遇到了棘手的角落案例)
  • pydantic(效果很好,文档很好,极端案例更少)[1]:https ://jsonpickle.github.io/
0 投票
2 回答
1123 浏览

python - 如何显示使用@dataclass 类装饰器时生成的代码?

Python 3.7 引入了dataclasses包含@dataclass装饰器的模块。这个装饰器可以生成类函数。如何打印这些生成的函数?