переменная определена, когда он первым присваивается значение. Как правило, это следует за соглашением variable = value
. Он не определяется до этого момента и определяется с этого момента до конца его области.
Если переменная не определена, попытка считывания ее данных поднимет NameError
. С другой стороны, []
, 0
и None
- это разные типы значений данных, которые могут быть равны определенной переменной.
В частности:
[]
- Массив без элементов
0
- значение int
равным числу 0
None
- специальный тип данных, который предназначен для обозначения того, что переменная делает не имеют значения. Это очень отличается от переменной, которая не определена.
Python не будет инициализировать переменную автоматически - как она могла? Не зная, какие данные или значения будут использоваться, Python не может обрабатывать неопределенную переменную. Поэтому он генерирует исключение, в частности, NameError
.
В JavaScript неопределенная переменная возвращает 'undefined', но в Python это приведет к фатальной ошибке. –