Parametri – 2

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