L’asterisco prima dell’ultimo parametro indica che si tratta di una lista
def funzione(*numeri):
print(sum(numeri))
funzione() # = 0
funzione(1) # 1 = 1
funzione(1, 2, 3) # 1+2+3 = 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
print(r)
funzione(1, 2.5, 3) # 1+2.5+3 = 6.5
funzione(1, "a", 3) # 1+3 = 4
funzione(1, 2.5, "b") # 1+2.5 = 3.5