def function(test_list: tuple = ()):

Первый function() вызовет AttributeError: у tuple нет append, и дальнейшие строки без обработки ошибки не выполнятся. Присваивание obj_t[0] отдельно даст TypeError.

Короткий ответ

Что ответить на собеседовании

Первый function() вызовет AttributeError: у tuple нет append, и дальнейшие строки без обработки ошибки не выполнятся. Присваивание obj_t[0] отдельно даст TypeError.

Подробный разбор

Ответ с пояснениями

Условие

def function(test_list: tuple = ()): test_list.append(1) print(test_list)

test_list = ()

function() # function(test_list) # function() # print(test_list) #

##################

obj_t = (1, [1.0], "1")

obj_t[0] = 2 # obj_t[1].append(2) # print(obj_t) #

Ответ

Первый function() вызовет AttributeError: у tuple нет append, и дальнейшие строки без обработки ошибки не выполнятся. Присваивание obj_t[0] отдельно даст TypeError.

Если рассматривать операции независимо, изменение списка внутри кортежа допустимо:

obj_t = (1, [1.0], '1')
obj_t[1].append(2)
print(obj_t)  # (1, [1.0, 2], '1')

Неизменяемость кортежа запрещает заменять его элементы, но не делает вложенный список неизменяемым. Аннотация tuple не меняет поведение методов и не выполняет runtime-преобразование аргумента.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее