← Назад к вопросам

Что не является объектом в Python?

1.2 Junior🔥 181 комментариев
#Python Core

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Что не является объектом в Python?

В Python почти всё является объектом, однако есть важное уточнение: Python — объектно-ориентированный язык, где практически всё имеет тип и наследует от базового класса object. Но вопрос требует понимания того, что на самом деле может быть не объектом или работает иначе.

Что в Python близко к "не-объектам"

1. Операторы языка

Операторы (=, +, -, *, /, //, %, **, &, |, ^, <<, >>, и т.д.) — это синтаксис, а не объекты. Они распознаются парсером Python.

# Это синтаксис, не объект
a = 5 + 3

# Но методы вроде __add__ уже объекты
result = int.__add__(5, 3)  # Работает
print(result)  # 8

2. Зарезервированные ключевые слова

Ключевые слова (if, else, for, while, class, def, return, yield, import и т.д.) — это синтаксические конструкции, не объекты:

# Это синтаксис
if True:
    pass

# Нельзя обратиться к if как к объекту
print(if)  # SyntaxError: invalid syntax

3. Блоки кода и области видимости

Области видимости (local, global, nonlocal) — это концепции интерпретатора, а не объекты. Хотя на них можно влиять через locals() и globals():

def example():
    x = 10
    print(locals())  # {x: 10} — словарь, объект
    print(globals())  # Словарь, объект

example()

4. Параметры и аргументы при определении

При определении функции параметры — это имена, а не объекты:

def func(x, y=10):  # x, y — имена параметров, не объекты
    return x + y

print(func(5))  # 15

5. Комментарии

Комментарии — это текст, который парсер игнорирует. Они существуют только в исходном коде:

# Это комментарий — не объект
x = 5  # Комментарий в конце строки
"""
Многострочный комментарий (на самом деле строка)
Это тоже объект типа str
"""

Но имейте в виду: почти всё остальное — объект

# Все эти "вещи" — объекты
print(type(5))  # <class int>
print(type("строка"))  # <class str>
print(type([1, 2, 3]))  # <class list>
print(type(True))  # <class bool>
print(type(None))  # <class NoneType>
print(type(int))  # <class type>
print(type(print))  # <class builtin_function_or_method>

# Даже функции и классы — объекты
def my_func():
    pass

print(type(my_func))  # <class function>
print(hasattr(my_func, __dict__))  # True

Что не наследует от object?

В Python 3 всё наследует от object (даже классы). В Python 2 были "old-style classes", но это история.

class MyClass:
    pass

print(issubclass(MyClass, object))  # True в Python 3
print(issubclass(int, object))  # True
print(issubclass(str, object))  # True

Вывод

Не являются объектами в Python:

  1. Синтаксис и операторы (if, for, +, =)
  2. Ключевые слова (def, class, return)
  3. Комментарии (игнорируются парсером)
  4. Области видимости (концепция интерпретатора, но их содержимое — объекты)

Всё остальное — объекты, которые имеют тип, атрибуты и методы.

Что не является объектом в Python? | PrepBro