Aqui está um grande exemplo que cobre muitos dos casos de argumentos múltiplos em uma função
def maths(var='NA'):
if var.lower() == 'add':
def add(*args):
return "Sum is : "+str(sum(args))
return add
elif var.lower() == 'substract':
def substract(a,b):
if a>b:
return "Difference is : "+str(a-b)
else:
return "Difference is : "+str(b-a)
return substract
elif var.lower() == 'multiply':
def multiply(*args):
temp = 1
for x in args:
temp = temp*x
return "multiplication is : "+str(temp)
return multiply
elif var.lower() == 'divide':
def divide(a,b):
return "Division is : "+str(a/b)
return divide
else:
print("Please choose one of given operations: 'add','substract','multiply','divide'")
Aqui, primeiro chame a função matemática com a operação necessária e, em seguida, use a função retornada para o cálculo real