Все ли в Python является объектами

Ответ

Да, в Python практически всё является объектами. Это одна из фундаментальных концепций языка.

Любая сущность, с которой вы работаете — числа, строки, списки, функции, классы, модули — является экземпляром какого-либо класса. У каждого объекта есть:

  • id (уникальный идентификатор в памяти)
  • тип (его класс)
  • значение

Пример:

# Число - это объект класса int
x = 42
print(f"Value: {x}, Type: {type(x)}, Is object: {isinstance(x, object)}")

# Функция - это объект класса function
def my_func():
    pass
print(f"Value: {my_func}, Type: {type(my_func)}, Is object: {isinstance(my_func, object)}")

# Класс - это тоже объект (класса type)
class MyClass:
    pass
print(f"Value: {MyClass}, Type: {type(MyClass)}, Is object: {isinstance(MyClass, object)}")

Результат выполнения:

Value: 42, Type: <class 'int'>, Is object: True
Value: <function my_func at ...>, Type: <class 'function'>, Is object: True
Value: <class '__main__.MyClass'>, Type: <class 'type'>, Is object: True

Важное уточнение: Ключевые слова языка (if, for, while, def, import и т.д.) не являются объектами. Это синтаксические конструкции, которые определяют структуру и логику программы, а не данные, которыми можно манипулировать.