Что выведет код Junior Типизация обновлено
Аннотации во время выполнения
Вопрос
Что выведет код? По строке на каждый print.
def add(a: int, b: int) -> int:
return a + b
print(add('2', '3'))
print(add.__annotations__['return'].__name__)
x: list[int] = ['не число']
print(x)
Попробуйте сами
Напишите, что выведет код: каждый вывод с новой строки.
Показать ответ и разбор
Коротко
Код выведет: 23, int, ['не число']. Python не проверяет аннотации: сложение строк даёт 23, а переменной с аннотацией list[int] можно присвоить список строк.
Что выведет
23
int
['не число']
Разбор
Python не проверяет аннотации: сложение строк даёт 23, а переменной с аннотацией list[int] можно присвоить список строк. Аннотации доступны как данные в __annotations__, и библиотеки вроде Pydantic читают их оттуда.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.