Что выведет этот код?


x = True
print(isinstance(x, int))

Результат выполнения кода: False. В Python bool является подклассом int, но isinstance(x, int) проверяет, является ли x экземпляром непосредственно класса int, а не его подкласса. Для проверки, что x является либо экземпляром класса int, либо его подкласса, нужно использовать issubclass(type(x), int).

Вопрос: Что выведет следующий код?


x = True
print(isinstance(x, int))
  

Ответ: True

Объяснение:

В Python, логический тип данных bool является подклассом целочисленного типа int. Значение True эквивалентно 1, а False эквивалентно 0.

Функция isinstance(object, classinfo) проверяет, является ли object экземпляром класса classinfo или экземпляром подкласса classinfo. В данном случае, x (которое равно True) является экземпляром подкласса int, поэтому функция возвращает True.

Это поведение может быть неочевидным для разработчиков, переходящих из других языков программирования, где логический тип является отдельным и не связан с целочисленным типом.

0