如何模拟数据类

zor*_*119 6 python python-dataclasses

我如何创建一个可以在其上运行的dataclass模拟asdict

这似乎不起作用:

>>> from dataclasses import dataclass, asdict
>>> @dataclass
... class A:
...     foo: int
>>> asdict(A(foo=1))
{'foo': 1}
>>> from unittest import mock
>>>
>>> asdict(mock.create_autospec(A))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.8/dataclasses.py", line 1072, in asdict
    raise TypeError("asdict() should be called on dataclass instances")
TypeError: asdict() should be called on dataclass instances
Run Code Online (Sandbox Code Playgroud)

注:Python 3.8.5