TGViewer
Библиотека питониста | Python, Django, Flask Библиотека питониста | Python, Django, Flask @pyproglib · 37.3K subscribers
Post #7483 3.89K
🧐 Функция или класс: почему в Python это часто одно и то же

Вы когда-нибудь задумывались, чем на самом деле являются привычные нам print, str или enumerate? Мы привыкли называть их «функциями», потому что мы их вызываем через круглые скобки.

Но в Python всё немного интереснее.

Попробуйте угадать, что из этого функция, а что — класс:
1. print()
2. str()
3. list()
4. sum()

Проверяем:
1. print — (Функция)
2. str —  (Класс!)
3. list —  (Тоже класс)
4. sum —  (Функция)

В Python и функции, и классы являются callable (вызываемыми) объектами.

Когда мы вызываем функцию, мы запускаем её код, чтобы она что-то сделала или вернула результат.

Когда мы вызываем класс, мы создаем его новый экземпляр (instance).

Например, вызывая str(4), мы технически создаем новый объект класса str. Но в повседневной речи мы почти всегда говорим «функция str». И это абсолютно нормально!

🦆 Утиная типизация в деле

То, что мы называем классы функциями — это классический пример duck typing:
«Если это выглядит как утка и крякает как утка, то это утка».


Для нас как для разработчиков часто неважно, как реализован инструмент «под капотом». Если мы можем его вызвать через (), значит для нас это функция.

Даже сама функция type() — это на самом деле класс!


>>> type
<class 'type'>



Но согласитесь, фраза «я вызвал класс type, чтобы узнать тип объекта» звучит максимально странно.

📍 Навигация: Вакансии • Задачи • Собесы

🐸 Библиотека питониста

#буст
  • 👍 11
  • ❤ 9
More from @pyproglib
  1. Sep 30, 2026🔥 Последний день для разработчиков AI уже пишет код. Теперь важнее научиться встраивать е…
  2. Sep 25, 2026🔥 Курс «ИИ для разработчиков» уже стартовал И мы решили открыть первое занятие всем — мож…
  3. Sep 20, 2026👻 94% токенов уходят не на код Анализ запусков показал: основная часть токенов уходит на…
  4. Sep 19, 2026📚Напоминаем про наш полный курс «Самоучитель по Python для начинающих» Мы написали и собр…
  5. Sep 15, 2026😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как трати…
  6. Sep 15, 2026⏱️ Справочник по Big-O в Python Для тех, кто хочет писать не просто работающий, а эффектив…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →