Как использовать и исправлять 'null' в Python?
Null в Python: Понимание объекта NoneType в Python
Python использует ключевое слово None
для определения null
объектов и переменных. Хотя None
выполняет некоторые из тех же функций, что и null
в других языках, он представляет собой совершенно другой объект. В Python None
является объектом, который является полноценным и важным элементом!
В этом руководстве вы узнаете:
- Что такое
None
и как его проверить - Когда и почему использовать
None
в качестве параметра по умолчанию - Что означают
None
иNoneType
в ваших трассировках - Как использовать
None
в проверке типов - Как работает
null
в Python под капотом
Бесплатное бонусное предложение: Нажмите здесь, чтобы получить Python Шпаргалку и научиться основам Python 3, таким как работа с типами данных, словарями, списками и функциями Python.
Понимание Null в Python
None
- это значение, которое функция возвращает, если в ней нет оператора return
:
Python
Выполнение:
При вызове has_no_return()
вы не увидите вывода. Однако, если вы попытаетесь распечатать этот вызов, то увидите скрытое значение None
.
Собственно, None
так часто используется в качестве возвращаемого значения, что интерпретатор Python не будет его печатать, если вы явно не указали это:
Python
Выполнение:
Результатом простого вызова None
на мате является пустоц в выводе консоли.
Интересно, что print()
сам по себе не имеет возвращаемого значения. Если вы попытаетесь распечатать вызов print()
, то получите None
:
Python
Выполнение:
Это может выглядеть странно, но print(print("..."))
показывает None
, который возвращает внутренний вызов print()
.
None
также часто используется как сигнал для отсутствующих или значений по умолчанию. Например, None
указан дважды в документации для list.sort
:
Python
Выполнение:
Использование объекта Null None
в Python
Часто вы будете использовать None
в качестве null
объекта или переменной. Например, в следующем коде None
используется для присвоения переменной пустого значения:
Python
Выполнение:
None
также может использоваться в качестве значения по умолчанию для параметров функции. Это позволяет функции иметь необязательные аргументы, которые могут быть опущены при вызове функции:
Python
Выполнение:
При вызове функции greet()
без аргументов, переменной name
присваивается значение None
, а затем выводится приветствие со значением по умолчанию. Если же при вызове функции передан аргумент name
, то он будет использован для вывода приветствия.
Ключевая особенность None
заключается в том, что он является единственным экземпляром класса NoneType
. Вы можете использовать оператор is
для проверки, является ли переменная None
:
Python
Выполнение:
Объявление переменных Null в Python
Объявление переменных в Python, которые соответствуют null
, может быть достигнуто путем присваивания им значения None
. Например:
Python
Теперь переменные x
и y
могут рассматриваться как null
значения. Можно использовать эти переменные для обозначения отсутствия или пустоты.
Использование None в качестве значения по умолчанию
None
также может использоваться в качестве значения по умолчанию для параметров функции. Это позволяет вам определить значения аргументов функции, которые могут быть не указаны при вызове функции.
Python
Выполнение:
При вызове функции greet()
без аргументов, переменной name
присваивается значение по умолчанию None
, а затем выводится приветствие со значением по умолчанию. Если же при вызове функции передан аргумент name
, то он будет использован для вывода приветствия.
Вместо использования None
в качестве значения по умолчанию вы также можете использовать другие значения, такие как ""
(пустая строка) или 0
, в зависимости от вашей конкретной задачи.
Использование None как нулевого значения в Python
None
также может использоваться в качестве нулевого значения в Python. Это особенно полезно при работе с переменными, используемыми для хранения информации, поскольку None
может быть использован для обозначения отсутствия значения или пустоты.
Python
В этом примере мы создали словарь user_profile
, в котором None
используется для обозначения, что значения age
и email
отсутствуют или не определены.
Расшифровка None в трассировке
Python может также использовать None
в трассировочной информации как отметку отсутствия значения. Если в трассировке вы видите None
, значит это указывает на то, что значения соответствующих переменных еще не были установлены или не были присвоены в этой точке выполнения программы.
Python
Выполнение:
В этом примере мы использовали блок tryhttps://codemdd.io/except
для перехвата исключения ZeroDivisionError
, которое возникает при делении на ноль. Если исключение было перехвачено, мы устанавливаем значение result
в None
и возвращаем его.
Это позволяет нам обрабатывать ошибки при делении на ноль и возвращать None
вместо того, чтобы вызывать исключение.
Проверка на Null в Python
Есть несколько способов проверить, является ли переменная None
в Python. Один из наиболее распространенных способов - использование оператора is
:
Python
Выполнение:
Здесь мы сравниваем переменные x
и y
с None
с помощью оператора is
. Если переменная является None
, результатом будет True
, в противном случае - False
.
Кроме того, вы можете использовать операторы ==
и !=
для сравнения переменных с None
:
Python
Выполнение:
Обратите внимание, что is
более предпочтителен для проверки на None
, так как он проверяет, является ли переменная тем же самым объектом None
, в то время как ==
сравнивает значения переменных.
Взглянем под капот
В Python None
- это одно единственное значение, которое всегда определено. Это происходит потому, что None
- это объект NoneType
. Интерпретатор Python предварительно создает этот объект при запуске программы и все ссылки на None
указывают на этот объект.
Так что, когда вы присваиваете переменной None
, вы просто присваиваете ссылку на существующий объект NoneType
. Это позволяет использовать оператор is
для проверки на None
, так как он проверяет, указывает ли переменная на тот же самый объект или нет.
Заключение
В этом уроке вы узнали о None
в Python и как использовать его для обозначения отсутствия значения или пустоты. None
является важным концептом, который приносит пользу в различных ситуациях, таких как значения по умолчанию, отсутствующие аргументы функции и проверка на None
. Вы теперь обладаете знаниями, которые помогут вам лучше понимать и использовать None
в своих программах на Python.