Код: Выделить всё
from dataclasses import dataclass, fields
@dataclass
class Broken:
field1: str = "default_string1",
field2: "" = "default_string2",
field3 = "default_string3"
Код: Выделить всё
b = Broken()
print("Wannabe type for field1:", fields(b)[0].type)
print("Real type for field1:", type(b.field1))
print("Wannabe type for field2:", fields(b)[1].type)
print("Real type for field2:", type(b.field2))
try:
print("Wannabe type for field3:", fields(b)[2].type)
except:
print("field3 is not part of fields(b)")
print("Real type for field3:", type(b.field3))
Код: Выделить всё
Wannabe type for field1:
Real type for field1:
Код: Выделить всё
Wannabe type for field2:
Real type for field2:
Код: Выделить всё
field3 is not part of fields(b)
Real type for field3:
Итак, какова цель аннотации типа для классов данных? Действительно ли они используются только для проверки того, должно ли поле быть указано в списке с помощью функции поля()? Или разработчики Python предвидели будущую функциональность типов в классах данных, которая еще не была реализована? Зачем мне добавлять аннотации типов к классам данных в Python?
Подробнее здесь: https://stackoverflow.com/questions/789 ... ataclasses