Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Possibile bug nei test con la ricorsione

A
Andrei_Ostafi (220 points)
0 2 3
in Eserciziario d'esame by (220 points)
edited by
Buongiorno,

Facendo alcuni esercizi con la ricorsione, mi sono ritrovato in una situazione strana, definendo una variabile nelle parentesi tonde della funzione ricorsiva, essa si porta i valori dei test precedenti.

Quindi facendo i test tramite Anaconda  e Spyder mi escono errati (tranne il primo), mentre facendoli manualmente uno ad uno mi escono esatti.

Vorrei sapere se sia un bug o semplicemente una cosa voluta.
263 views
closed

2 Answers

Best answer
andrea.sterbini (207940 points)
756 1270 2377
by (208k points)
selected by
In Python, per gli argomenti opzionali con valori di default, i valori di default vengono instanziati al momento della dichiarazione della funzione e non al momento della sua chiamata. Questo fa sì che lo stesso valore sia fornito come default tutte le volte che chiami la funzione senza passare un valore. Quindi il valore viene condiviso tra le chiamate, e se è un oggetto mutabile (lista, dizionario, insieme eccetera) ti trovi nelle chiamate seguenti i valori delle chiamate precedenti.

Usa None come valore di default e nella funzione valorizza la variabile se è None, in modo da instanziare il valore solo nella chiamata
A
Andrei_Ostafi (220 points)
0 2 3
by (220 points)
Grazie mille per il chiarimento.
AlessandroPy (690 points)
4 12 16
by (690 points)
Quale dei 4 HW?
A
Andrei_Ostafi (220 points)
0 2 3
by (220 points)
No, esercizi ricorsivi dell'eserciziario