Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗pyOpDcFd 122 of 174 menu
◀ ▶

Настройка поля датакласса в ООП в Python

Функция field позволяет управлять тем, как поле участвует в конструкторе и в строковом представлении объекта.

Параметр init=False исключает поле из автоматического конструктора. Параметр repr=False скрывает поле при выводе через print.

Давайте сделаем класс User. Поле uid не попадет в конструктор, a password не будет видно в print:

from dataclasses import dataclass, field @dataclass class User: name: str age: int uid: int = field(init=False, default=0) password: str = field(repr=False, default='')

Создадим объект, передав только имя и возраст:

user = User('john', 25) print(user) # password не выведется

Значение uid можно задать после создания:

user.uid = 100 print(user.uid) # выведет 100

Сделайте датакласс Employee с полями name, salary и secret. Поле secret не должно попадать в вывод объекта через print.

Добавьте поле id с init=False и значением по умолчанию 0. Убедитесь, что его нет среди параметров конструктора.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить