*** id(print) # 1738991274000 id(print()) # 140705445104448 Что мы видим? Нечто странное: функция – print() – одна, а адреса – разные! Почему? Разные адреса, которые мы видим при вызове id(print) и id(print()), обусловлены фундаментальным различием между объектом и результатом его вызова. В языке Python всё является объектом: числа, строки, функции, классы. У каждого объекта есть уникальный идентификатор, который возвращает функция id(). *** 1. id(print) • Если мы введём в интерактивном интерпретаторе Python просто print, то он ответит, что это встроенная функция – <built-in function print> • Тип print относится к классу «встроенная функция или метод» – <class 'builtin_function_or_method'> • Вводя id(print), мы передаём в функцию id() сам объект-функцию print. • В Python функция – это объект первого класса. Когда мы пишем просто print, мы ссылаемся на этот объект. • Функция id() возвращает уникальный идентификатор (адрес в памяти) именно этого объекта-функции. • Классическ
Почему у id(print) и id(print()) – разные адреса?
16 июня16 июн
5
2 мин