Скажем, у меня есть функция, которая принимает 3 необязательные аргументы:Python: Conditionals для дополнительных аргументов функции
def function(arg1=0, arg2=0, arg3=0)
Что такое чистый способ справиться с условными внутри функции в зависимости от того, какой аргумент передается?
Сейчас все у меня есть:
def function(arg1=0, arg2=0, arg3=0)
if arg1 !=0 and arg2 !=0 and arg3 != 0:
# do stuff with all three args
elif arg1 !=0 and arg2 != 0:
# do stuff with arg1 and arg2, etc...
Чтобы расширить на это, что, если моя функция может принимать 5 аргументов? Выполнение условий для всех возможных комбинаций кажется перетаскиванием. Могу ли я сделать что-то еще, чтобы проверить, какие аргументы были переданы функции?
ОБНОВЛЕНИЕ: Основываясь на некоторой обратной связи, я думаю, я просто объясню в реальных условиях, что я делаю. Мне нужно оценить возраст кого-то, когда они окончили школу (средняя школа, колледж, программа выпускников и т. Д.). Я, возможно, несколько лет, чтобы идти дальше, и на самом деле я могу иметь несколько лет для каждой из средней школы, колледжа и т.д.
Так, примером может быть:
def approx_age(highSchool=0, college=0):
this_year = date.today().year
if (highSchool != 0) and (college != 0):
hs_age = (this_year - highSchool) + 18
college_age = (this_year - college) + 21
age_diff = abs(hs_age - college_age)
if age_diff == 0:
return hs_age
elif return (hs_age + college_age)/2
elif highSchool != 0:
hs_age = (this_year - highSchool) + 18
return hs_age
elif college != 0:
college_age = (this_year - college) + 21
return college_age
Вещи только собирается усложняются отсюда ...
У вас есть условия для всех возможных комбинаций, или просто количество аргументов, переданных? – Marcin
'arg! = 0' на самом деле равен' if arg' в большинстве случаев. – favoretti
Второе предложение 'if' будет истинным, если 1-я позиция' if' истинна. Вы хотите, чтобы? – Sriram