Как использовать Python: руководство по базовым операциям
Null в Python: Понимание объекта NoneType в Python
Автор: Wolf
Понимание Null в Python
None
является значением, которое функция возвращает, когда в ней отсутствует оператор return
:
Когда вы вызываете has_no_return()
, у вас нет вывода для просмотра. Однако, если вы печатаете этот вызов, то увидите скрытое значение None
, которое он возвращает.
Фактически, None
так часто появляется в качестве возвращаемого значения, что гипертекстовая среда Python не будет печатать None
, если вы явно не попросите ее:
None
сам по себе не имеет вывода, но печать его отображает значение None
в консоли.
Интересно, что сама функция print()
не имеет значения возвращаемого значения. Если вы попытаетесь напечатать вызов функции print()
, то получите значение None
:
Может показаться странным, но print(print("..."))
показывает вам значение None
, которое возвращает внутренняя функция print()
.
None
также часто используется в качестве сигнала для отсутствующих или значений по умолчанию. Например, в документации для метода list.sort
значение None
появляется дважды:
Использование объекта None в Python
Часто, вам может потребоваться создать переменные со значением None
, чтобы присвоить им значения позднее. В Python это делается следующим образом:
Теперь переменная x
имеет значение None
и может быть использована в вашей программе.
Одним из практичных случаев использования значения None
является использование его в качестве по умолчанию для параметров функции. Рассмотрим следующий пример:
В этом примере, функция greet()
принимает параметр name
, который по умолчанию равен None
. Если значение name
равно None
, тогда вместо него выводится приветствие “Hello, World!“. В противном случае, выводится приветствие, содержащие имя, которое было передано в параметре name
. При вызове функции без аргументов, будет использовано значение по умолчанию None
и будет выведено “Hello, World!“.
Использование None в качестве нулевого значения в Python
Значение None
также может использоваться в качестве нулевого значения для пустых переменных. Например:
В этом примере, переменная x
присваивается значение None
, а переменная y
присваивается значение 5
. Затем, значения x
и y
суммируются и результат присваивается переменной z
. Поскольку значение x
равно None
, сумма будет равна None
. При печати z
будет выведено значение None
.
Декодирование None в трассировочном сообщении
Значение None
также появляется в трассировочных сообщениях при отсутствии возвращаемого значения. Например:
В этом примере, функция divide()
возвращает результат деления двух аргументов, a
и b
. Если деление на 0 возникает ошибка ZeroDiivisionError
, и сообщение об ошибке будет напечатано. При вызове функции divide(10, 0)
, возникнет исключение деления на нуль, и переменной result
будет присвоено значение None
.
Проверка на None в Python
Чтобы проверить, является ли переменная равной None
, вы можете использовать оператор is
. Например:
В этом примере, переменная x
проверяется на равенство с None
с помощью оператора is
. Если переменная x
равна None
, тогда будет выведено “x is None”. В противном случае, будет выведено “x is not None”.
Взгляд под капот None в Python
Когда вы объявляете переменную со значением None
, на самом деле создается ссылка на специальный объект None
. В Python этот объект можно получить с помощью функции id()
. Например:
Значение, которое будет выведено, представляет собой уникальный идентификатор объекта None
. В разных запусках программы это значение может быть разным, но оно всегда будет одинаковым в рамках одного запуска программы.
Заключение
None
- это специальное значение в Python, которое используется для указания отсутствия значения. Оно может быть использовано в качестве возвращаемого значения функции, значения параметров по умолчанию, нулевого значения для переменных и в трассировочных сообщениях при отсутствии возвращаемого значения. В Python None
является объектом, и его можно проверить на равенство с помощью оператора is
.