Люди иногда используют Python или -оператор для этой цели:
def f(p=None):
i = p or 4
...
Опирается на «уникальный для Python» аспект оператора или для возврата значения, которое делаетвыражение true (а не просто возвращение True или False).
Другой вариант, обеспечивающий большую гибкость, - это использование условного выражения :
def f(p=None):
i = p if p is not None else 4
...
Если вы простохотите проверить, не определена ли уже переменная, попытка / исключение является самым чистым подходом:
try:
i = p
except NameError:
pass
При этом, это было бы нетипично для Python и может быть намеком на то, что что-то не такс дизайном программы.
Лучше просто инициализировать переменную значением заполнителя, таким как Нет .В этом отношении стиль Python несколько отличается от стиля Javascript.