Funzioni con Argomenti Multipli


Ogni funzione in Python riceve un predefinito numero di argumenti, se dichiarati normalmente, come queste:

def myfunction(first, second, third):
    # farò qualcosa con questi tre argomenti
    ...

Ora dichiariamo una funzione che riceve un numero variabile di argomenti,ma usando la seguente sintassi:

def foo(first, second, third, *therest):
    print "Primo: %s" % first
    print "Secondo: %s" % second
    print "Terzo: %s" % third
    print "E tutto il resto... %s" % therest

La variabile "therest" è una lista di variabili, che ricevono tutti gli argomenti che sono stati passati alla funzione "foo" dopo i primi tre
argomenti. Per tanto chiamando foo(1,2,3,4,5) la stampa in uscita sarà:

Primo: 1
Secondo: 2
Terzo: 3
E tutto il resto... [4, 5]

E 'anche possibile inviare a funzioni argomenti tramite parola chiave, in tal modo l'ordine dell'argomento non è importante,ma
si utilizza la seguente sintassi:

def bar(first, second, third, **options):
    if options.get("action") == "sum":
        print "la Somma degli argomenti è: %d" % (first + second + third)

    if options.get("return") == "first":
        return first

...

risultati = bar(1, 2, 3, action = "sum", return = "first")
print "Risultati: %d" % risultati

Il codice precedente provoca il seguente risultato:

la Somma degli argomenti è: 6
Risultati: 1

La funzione "bar" riceve 3 argomenti. Se l'argomento aggiuntivo "action" viene ricevuto, e tratta della somma dei numeri, allora la somma viene
stampata. Alternativamente, La function conosce anche il primo argomento che deve restituire ,nel caso che l'argomento "return" sia ricevuto come istruzione

Esercizio:

Completare le funzioni "foo" e "bar" in modo che possano ricevere una quantità variabile come argomento. La funzione "foo" deve stampare la quantità di un argomento ricevuto extra. La funzione "bar" deve restituire "True" se l'argomento con parola chiave "magicnumber" vale 7. Se è cosi , restituisce True. SE no,restituisce False.


Copyright © learnpython.org. Read our Terms of Use and Privacy Policy