Sari la conținutul principal
🔒 Mod previzualizare. Primele cincisprezece lecții Foundations sunt gratuite; aceasta este Pro. Pornește un trial de 7 zile pentru a debloca editorul, sugestiile AI și restul programului. Card necesar, anulează oricând în Dashboard.Pornește trial de 7 zile →
← CursuriSenior Deep-DivesModule 10 · Production idioms (modern Python)typing.Annotated — metadata that hides BEHIND the typepredict144 / 161
+150 XP
Sarcină
📝 **Sarcina:** Preziceți ieșirea cu 5 linii. Un marcator de metadate „Range” este atașat unui parametru „int” prin „Adnotat”. Apoi, lecția inspectează indicația de tip prin intermediul a 3 ajutoare: `get_type_hints(include_extras=True)`, `get_origin`, `get_args`. Fiți atenți la ceea ce returnează `get_origin` pentru un tip adnotat - NU este tipul de bază. 📋 Implementați funcția de mai sus. Testele rulează automat. 💡 **Sugestie:** Recitiți teoria dacă rămâneți blocat.
Prezice ieșirea

Citește codul cu atenție

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])

Ce va afișa programul? Scrie aici:

💬 Discuție

Fii primul — pune o întrebare sau împărtășește un sfat.
Conectează-te pentru a te alătura discuției. Citirea este gratuită.
Se încarcă discuția…