Альтернативой другим предложениям является использование параметра kwargs
, а затем сделать что-то вроде этого:
def func(a, **kwargs):
if 'b' in kwargs:
print 'b was passed in'
b = kwargs['b']
else:
print 'b was not passed in'
b = 100
return a + b
a = 50
func(a)
func(a, b = 100)
Вывод:
b was not passed in
150
b was passed in
150
Поскольку kwargs
являетсясловарь, содержащий все необязательные параметры, вы можете проверить этот словарь, чтобы определить, что было / не было передано.
Вы можете сделать поиск b
более эффективным, вместо того, чтобы искать kwargs
дважды, если это необходимо.