Выведется False. data — tuple из одного элемента; наличие внутри целого числа не делает сам кортеж экземпляром int.
Вывод и причина поведения кода при проверке типа
Выведется False. data — tuple из одного элемента; наличие внутри целого числа не делает сам кортеж экземпляром int.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Что выведет данная программа и почему? Рассматривается проверка типа объекта.
data = (1_000_000,)
print(isinstance(data, int))
Ответ
Выведется False. data — tuple из одного элемента; наличие внутри целого числа не делает сам кортеж экземпляром int.
Кортеж создаётся благодаря запятой:
data = (1_000_000,)
assert isinstance(data, tuple)
assert isinstance(data[0], int)
Подчёркивания в записи числа используются для читаемости и не влияют на тип. Если написать data = (1_000_000) без запятой, скобки только сгруппируют выражение, и isinstance(data, int) вернёт True.
Проверка isinstance применяется к переданному объекту и учитывает его класс/наследование, но не просматривает содержимое контейнера. Для проверки элементов требуется обращаться к ним отдельно либо выполнять цикл.