- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用来自 dataclasses
的 dataclass
和 asdict
,我发现 asdict
并不像我在引入继承时所期望的那样工作。
我使用 dataclasses
来帮助我从类创建字典,这样我就可以将它们传递给 django.shortcuts.render
。
from dataclasses import dataclass
from dataclasses import asdict
@dataclass
class Base:
name: str
class Test(Base):
def __init__(self, age, *args, **kwargs):
self.age = age
super(Test, self).__init__(*args, **kwargs)
test = Test(age=20, name="john doe")
print(asdict(test))
我希望输出是
{"age": 20, "name": "john doe"}
但我得到的只是来自基类的关键字值
{"name": "john doe"}
最佳答案
涵盖了数据类
继承的正确实现 in the docs :
@dataclass
class Base:
name: str
@dataclass
class Child(Base):
age: int
如果没有这个,子类中的 __dataclass_fields__
属性(asdict
用来确定字典中应该包含的内容)并不知道您的所有字段关心;它只有继承的版本:
>>> Test.__dataclass_fields__
{'name': Field(...)}
>>> Test.__dataclass_fields__ is Base.__dataclass_fields__
True
>>> Child.__dataclass_fields__
{'name': Field(...), 'age': Field(...)}
>>> Child.__dataclass_fields__ is Base.__dataclass_fields__
False
另请注意,您可以将导入简化为:
from dataclasses import asdict, dataclass
关于python - dataclasses.asdict() 没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56595683/
请注意,这类似于 How to get @property methods in asdict? . 我有一个(卡住的)嵌套数据结构,如下所示。定义了一些(纯粹)依赖于字段的属性。 import co
我有一个带有字段 template 的数据类枚举类型。使用 asdict 时函数它将我的数据类转换为字典。是否可以使用 value FoobarEnum 的属性返回字符串值而不是 Enum 对象? 我
我正在使用来自 dataclasses 的 dataclass 和 asdict ,我发现 asdict 并不像我在引入继承时所期望的那样工作。 我使用 dataclasses 来帮助我从类创建字典,
我有一个我面临的问题的人为示例: import pyparsing as pp fname = pp.OneOrMore( pp.Word("Max") ).setResultsName("fname
我有一个数据类,它看起来像这样: @dataclass class myClass: id: str mode: str value: float 这导致: dataclasses.
我有类似的东西: from attr import attrs, attrib @attrs class Foo(): max_count = attrib() @property
我正在尝试编写解析器来处理来自注册商 API 的响应数据。该格式不是我以前见过的格式,所以这可能真的很简单;如果有人认出它,请告诉我,可能有一个预先存在的库来处理它。但现在我假设我需要自己解析它。 我
@dataclass class Car: brand: str color: str 如何获得忽略 None 值的字典?像这样的东西: >>> car = Car(brand="Au
在documentation Python 模块 attrs stated有一种方法可以将属性的类转换为字典表示: 示例: >>> @attr.s ... class Coordinates(obje
我正在使用 Python 3.6 和来自 ericvsmith 的 dataclasses backport 包. 似乎调用 dataclasses.asdict(my_dataclass) 比调用
我正在尝试使用 multiprocessing.pool 来加速使用 pyparsing 解析的文件的某些解析,但是我得到了一个 multiprocessing.pool.MaybeEncodingE
我是一名优秀的程序员,十分优秀!