Можно ли только объявить переменную без присвоения какого-либо значения в Python? - PullRequest
230 голосов
/ 20 марта 2009

Можно ли объявить переменную в Python, например, так:

var

чтобы оно инициализировалось в None? Кажется, что Python позволяет это, но как только вы получаете к нему доступ, он падает. Это возможно? Если нет, то почему?

РЕДАКТИРОВАТЬ: Я хочу сделать это для случаев, подобных этому:

value

for index in sequence:

   if value == None and conditionMet:
       value = index
       break

Дублирование

Относящиеся

Ответы [ 13 ]

0 голосов
/ 15 января 2018

С этим уродливым переводчиком можно обмануть переводчика if None: var = None Он не делает ничего, кроме добавления переменной var в словарь локальных переменных, а не ее инициализации. Интерпретатор сгенерирует исключение UnboundLocalError, если вы попытаетесь впоследствии использовать эту переменную в функции. Это будет работать и для очень древних версий Python. Не простой и не красивый, но не ожидайте многого от питона.

0 голосов
/ 12 октября 2016

Если None является допустимым значением данных, то вам нужно изменить переменную другим способом. Вы можете использовать:

var = object()

Этот страж предложен Ником Когланом .

0 голосов
/ 12 сентября 2014
var_str = str()
var_int = int()
...