Игнорирование не существующей переменной python
def func():
a = 1
b = a+c
print(b)
func()
Как сделать так, чтобы если c не существует, то просто не прибавлять её?
Ответы (3 шт):
Можно сделать двумя путями:
- объявить заранее
c = Noneи добавить проверкуif c is not None - По вашему контексту можно задать заранее для переменной значение
c = 0и если нет другого переопределения переменной, то и сложение ничего не изменит.
Есть и более костыльный выход через рефлексию. Вот был аналогичный вопрос.
Вообще вы решаете не ту проблему. Функция в принципе не должна оперировать переменными, которые в неё не были переданы явным образом как параметры. Ну, если это не метод класса. В обоих случаях проблема решается либо параметром функции со значением по умолчанию 0, либо если это класс, то сразу инициализировать переменную класса нулём прямо при создании класса.
А вот такое, что простая функция (не метод класса) оперирует какими-то непонятными внешними переменными, взявшимися неизвестно откуда - такого не должно быть, это рано или поздно непонятные глюки обеспечены. Так код не надо писать.
если c не существует, то просто не прибавлять её?
def func():
a = 1
try:
b = a+c
except NameError:
b = a
print(b)
func()