2015-04-15 5 views
2

Для переменной Python (например, List и integer), если мы ее не инициализируем, всегда ли они? Есть ли какой-либо сценарий, который Python выполнит для нас, даже если мы его не инициализируем явно?для инициализации переменной Python

Для инициализации, я имею в виду,

Foo = [] 
Goo = 0 

заранее спасибо, Лин

+0

В JavaScript неопределенная переменная возвращает 'undefined', но в Python это приведет к фатальной ошибке. –

ответ

5

переменная определена, когда он первым присваивается значение. Как правило, это следует за соглашением variable = value. Он не определяется до этого момента и определяется с этого момента до конца его области.

Если переменная не определена, попытка считывания ее данных поднимет NameError. С другой стороны, [], 0 и None - это разные типы значений данных, которые могут быть равны определенной переменной.

В частности:

  • [] - Массив без элементов
  • 0 - значение int равным числу 0
  • None - специальный тип данных, который предназначен для обозначения того, что переменная делает не имеют значения. Это очень отличается от переменной, которая не определена.

Python не будет инициализировать переменную автоматически - как она могла? Не зная, какие данные или значения будут использоваться, Python не может обрабатывать неопределенную переменную. Поэтому он генерирует исключение, в частности, NameError.

+3

Или 'UnboundLocalError' – Shashank

+0

@dr_andonuts, что значит« переменная не определена »? Приведен пример. Благодарю. :) –

+0

@LinMa Когда переменной присваивается значение, она становится определяемой. До этого момента он не определен. –

Смежные вопросы