Найти в Дзене
Почему у id(None) и id(print()) – один адрес, но id(print()) не равно None?
*** id(None) # 140705445104448 id(print()) # 140705445104448 id(print()) == None # False id(print()) is None # False Как видим, у id(None) и id(print()) – один адрес, но при этом id(print()) не равно None!.. Это одна из самых интересных и неочевидных особенностей языка Python, которая касается объекта None и его сравнения с другими объектами. *** 1) id(None) • В Python объект None является синглтоном (singleton). Это означает, что в рамках одного процесса (одной запущенной программы) существует только один-единственный экземпляр объекта None...
5 дней назад
Почему у id(print) и id(print()) – разные адреса?
*** id(print) # 1738991274000 id(print()) # 140705445104448 Что мы видим? Нечто странное: функция – print() – одна, а адреса – разные! Почему? Разные адреса, которые мы видим при вызове id(print) и id(print()), обусловлены фундаментальным различием между объектом и результатом его вызова. В языке Python всё является объектом: числа, строки, функции, классы. У каждого объекта есть уникальный идентификатор, который возвращает функция id(). *** 1. id(print) • Если мы введём в интерактивном...
5 дней назад
Вариации на тему «Hello, World!» в Python. Вариант 11. Используем функцию exec()
Продолжаем вариации на тему «Hello, World!» в Python. Следующие два примера (с разными вариантами оформления многострочной строки) демонстрируют работу встроенной функции exec() в языке Python. *** Функция exec() принимает строку, содержащую валидный Python-код, и выполняет этот код в текущем контексте (то есть в той же области видимости, где вызвана функция). Синтаксис выглядит так: exec(code_string) • code_string – это строка (тип str), внутри которой написан исполняемый код. *** exec(""" print('Hello,...
6 дней назад
Вариации на тему «Hello, World!» в Python. Вариант 10. Используем функцию eval()
Продолжаем вариации на тему «Hello, World!» в Python. *** eval("'Hello, World!'") *** Встроенная функция eval() в Python принимает строку и выполняет её как код на языке Python. Если передать ей строку, содержащую корректное выражение, она вычислит его и вернёт результат. • Если передать eval("2 + 2"), функция вернёт число 4. • Если передать eval("print('test')"), функция выполнит команду печати и выведет test. • Если передать просто текст (строковый литерал), функция вернёт этот текст без изменений...
1 неделю назад
AttributeError, или Досадная ошибка Пола Бэрри…
*** В книге Пола Бэрри «Изучаем программирование на Python» * (кстати, очень хорошая книга по Python!) приведён такой учебный пример (сс. 348 - 349): class CountFromBy: # Создаётся пустой класс pass a = CountFromBy() # Создаются объекты класса b = CountFromBy() с = CountFromBy() c # 0 c.increase() # Каждый вызов метода «increase» увеличивает значение счётчика на единицу c.increase() c.increase() # 3. После трёх вызовов метода «increase» счётчик равен трём *** Но ведь c выводит не 0, а <__main__...
1 неделю назад
Если нравится — подпишитесь
Так вы не пропустите новые публикации этого канала