Какова ценность None в памяти?

None из Python не является зарезервированным словом, просто вопрос переместил мой взгляд на точное значение None в памяти. То, что я держу в своем сознании, заключается в том, что представление None в памяти равно 0 или указатель, указывающий на кучу. Но ни указатель, указывающий на пустую область в памяти, не имеет смысла ни нулевого значения. Потому что, когда я тестировал следующее:

 >>> None.__sizeof__() 16 

Оказывается, что None потребляет 16 байт, и это на самом деле слишком много для просто пустого значения.

Итак, что фактически не представляет в памяти?

4 Solutions collect form web for “Какова ценность None в памяти?”

None – это одноэлементный объект, который не предоставляет (почти) никаких методов и атрибутов, и единственная его цель – означать, что для какой-либо конкретной операции нет значения.

В качестве реального объекта все еще должны быть некоторые заголовки, некоторая информация отражения и тому подобное, поэтому требуется минимальная память, занимаемая каждым объектом python.

None ссылается на какой-то объект Python из NoneType , фактически единственный экземпляр такого рода. Так как это объект Python, как буквально все, что угодно, это не только сырьевое содержимое, которое хранится и в дополнительной информации об объекте, например, его типе.

У каждого объекта эти накладные расходы; поэтому целые числа начинаются с размера, например, 28. Вы не можете изменить это, это деталь реализации Python и его системы типов.

None – это специальная константа в Python, которая представляет собой отсутствие значения или нулевого значения. Это объект собственного типа данных – NoneType. Мы не можем создавать несколько объектов None, но можем назначать их переменным. Эти переменные будут равны друг другу. Мы должны обратить особое внимание на то, что None не подразумевает False, 0 или любой пустой список, словарь, строку и т. Д. Например:

 >>> None == 0 False >>> None == [] False >>> None == False False >>> x = None >>> y = None >>> x == y True 

Функции Void, которые не возвращают ничего, автоматически возвращают объект None. None также возвращаются функциями, в которых поток программы не встречает оператора return. Например:

 def a_void_function(): a = 1 b = 2 c = a + b x = a_void_function() print(x) 

Выход: None

Эта программа имеет функцию, которая не возвращает значение, хотя оно выполняет некоторые операции внутри. Поэтому, когда мы печатаем x, мы получаем None, который возвращается автоматически (неявно). Аналогичным образом, вот еще один пример:

 def improper_return_function(a): if (a % 2) == 0: return True x = improper_return_function(3) print(x) 

Выход: None

Хотя эта функция имеет оператор return, она не достигается в каждом случае. Функция вернет True только тогда, когда вход четный. Итак, если мы дадим функции нечетное число, то None возвращается неявно.

Оказывается, что None потребляет 16 байт, и это на самом деле слишком много для просто пустого значения.

None ist не пустое значение. Это объект NoneType который представляет отсутствие значения, которое вы можете здесь прочитать: Python Встроенные константы Док . Вы можете назначить None переменным, но вы не можете назначить None, так как это приведет к синтаксической ошибке.

  • Использование дополнительных API Google в моей посуде (совместное использование с g + аккаунтами)
  • Для чего используется функция id ()?
  • доступ к нескольким значениям по 1 дублирующему ключу
  • Python: получать индексы списка с использованием регулярного выражения?
  • Преобразование строки UPPERCASE для предложения в Python
  • Python: установка элемента матрицы Numpy
  • Строка конкатенации Python и список
  • Варианты множественного входа (Google / Facebook / Twitter)
  • Python - лучший язык программирования в мире.