L’asterisco prima dell’ultimo parametro indica che si tratta di una lista
def funzione(*numeri):
return sum(numeri)
f1 = funzione() # f1 = 0
f2 = funzione(1) # f2 = 1
f3 = funzione(1, 2, 3) # f3 = 6
Se i parametri sono di tipo diverso e in ordine “sparso” si può rimediare con la funzione isinstance()
def funzione(*numeri):
r=0
for x in numeri:
if(isinstance(x, (float,int))):
r += x
return r
f1 = funzione(1, 2.5, 3) # f1 = 6.5
f2 = funzione(1, "a", 3) # f2 = 4
f3 = funzione(1, 2.5, "b") # f3 = 3.5