Перейти до основного вмісту
🔒 Режим прев'ю. Перші 15 уроків Foundations — безкоштовні; цей — Pro. Запусти 7-денний trial щоб відкрити редактор, AI-підказки і решту курсу. Потрібна картка, скасування в Dashboard у будь-який момент.Почати 7-денний trial →
← КурсиSenior Deep-DivesModule 10 · Production idioms (modern Python)typing.Annotated — metadata that hides BEHIND the typepredict144 / 161
+150 XP
Завдання
📝 **Завдання:** Спрогнозуйте 5-рядковий вихід. Маркер метаданих `Range` додається до параметра `int` через `Annotated`. Потім урок перевіряє підказку типу за допомогою 3 помічників: `get_type_hints(include_extras=True)`, `get_origin`, `get_args`. Зверніть увагу на те, що повертає `get_origin` для анотованого типу — це НЕ базовий тип. 📋 Реалізуйте наведену вище функцію. Тести запускаються автоматично. 💡 **Підказка:** Перечитайте теорію, якщо ви застрягли.
Передбач вивід

Прочитай код уважно

from typing import Annotated, get_type_hints, get_args, get_origin


class Range:
    def __init__(self, lo: int, hi: int) -> None:
        self.lo = lo
        self.hi = hi

    def __repr__(self) -> str:
        return f"Range({self.lo}-{self.hi})"


def set_age(age: Annotated[int, Range(0, 120)]) -> None:
    pass


hints = get_type_hints(set_age, include_extras=True)
ann = hints["age"]

print(repr(ann))
print(get_origin(ann))
print(get_args(ann))
print(get_args(ann)[0])
print(get_args(ann)[1])

Що виведе програма? Напиши тут:

💬 Обговорення

Будьте першим — поставте запитання або поділіться порадою.
Увійдіть щоб приєднатися до обговорення. Читання безкоштовне.
Завантаження обговорення…