Combinazione di parametri in Python
Nella stessa funzione è possibile
passare contemporaneamente parametri
nominati e posizionali.
Ciò viene fatto utilizzando il simbolo *,
che indica che i parametri specificati
alla sua destra devono essere considerati nominati,
se i loro valori predefiniti non devono essere
utilizzati.
Creiamo una funzione che
stampi tutti i parametri nella console. La variabile
data rappresenterà un normale
parametro posizionale. Successivamente, dopo il simbolo
*, vengono definite due variabili start
e end con valori predefiniti.
Tuttavia, quando chiamiamo la funzione, rendiamo queste
variabili nominati:
def func(data, *, start=0, end=100):
print(data, start, end)
func(1, start=2, end=3)
Risultato dell'esecuzione del codice:
1 2 3
Se si rimuove il valore predefinito della variabile
start e allo stesso tempo non la si specifica come
parametro nominato, verrà visualizzato un errore.
Ciò accade perché il simbolo *
ha già definito start come una variabile
nominata:
def func(data, *, start, end=100):
print(data, start, end)
func(1, 2, end=3) # darà un errore
Quale sarà il risultato della seguente esecuzione di codice:
def func(num1, num2, *, num3):
return (num1 + num2) * num3
print(func(2, 4, num3=3))
Quale sarà il risultato della seguente esecuzione di codice:
def func(num1, *, num2, num3):
return (num1 - num2) / num3
print(func(12, 4, num3=5))
Quale sarà il risultato della seguente esecuzione di codice:
def func(*, name='user1', age='18'):
return 'Username is ' + name + ' age is ' + age
print(func(name='john'))