Как издеваться над классом данных

#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
 

Примечание: Python 3.8.5

Комментарии:

1. Этот пример хорошо работал в моей версии Python 3.7.3 в Windows, но использование Python 3.7.6 в Ubuntu не сработало. Можете ли вы попробовать Python3.7.3?

2. Это действительно не работает для меня в Python 3.8.5 @robbinc91