Классы данных Python с дополнительными атрибутамиPython

Программы на Python
Ответить
Anonymous
 Классы данных Python с дополнительными атрибутами

Сообщение Anonymous »

Как создать необязательные атрибуты класса данных?
from dataclasses import dataclass

@dataclass
class CampingEquipment:
knife: bool
fork: bool
missing_flask_size: # what to write here?

kennys_stuff = {
'knife': True,
'fork': True
}

print(CampingEquipment(**kennys_stuff))

Я попробовал поле(init=False), но оно дало мне:
TypeError: CampingEquipment.__init__() missing 1 required positional argument: 'missing_flask_size'

Под необязательным я подразумеваю, что __dict__ может содержать ключ «missing_flask_size» или нет. Если я установлю значение по умолчанию, ключ будет там, а в некоторых случаях его не должно быть. Я хочу проверить его тип, если он существует.
Я попробовал переместить поле (init=False) в местоположение типа (после двоеточия), чтобы сделать его более подробно я хотел бы, чтобы необязательным был ключ, а не значение.
Поэтому я хочу, чтобы этот тест прошел:
with pytest.raises(AttributeError):
ce = CampingEquipment(**kennys_stuff)
print(ce.missing_flask_size)


Подробнее здесь: https://stackoverflow.com/questions/708 ... attributes
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»