Простыми словами: иногда имя ящичка приходит строкой — например, игрок сам ввёл слово.
Тогда через точку не напишешь, и на помощь приходят функции:
- setattr(obj, "name", value) — положить в ящичек
- getattr(obj, "name") — достать
- getattr(obj, "name", запасное) — достать, а если ящичка нет — отдать запасное значение
- hasattr(obj, "name") — спросить «а такой ящичек есть?»
Запусти код кнопкой RUN и сравни вывод со своим прогнозом.
Вопрос: Что вернёт getattr(Skin, "sound", False), если звука у скина нет?
Объяснение:
- setattr(Skin, "color", "золотой") — то же самое, что Skin.color = "золотой"
- getattr(Skin, "color") → золотой
- getattr(Skin, "sound", False) → False: ящичка нет, отдаём запасное
- hasattr(Skin, "rarity") → True
ИИ-помощник закреплён справа внизу. Откройте чат и задайте вопрос по текущему уроку — контекст подставится автоматически.
- «Объясни, зачем нужен id()»
- «Почему не компилируется мой код?»
- «Дай подсказку без полного решения»