La maggior parte delle lingue è a conoscenza del linguaggio del "sé di ritorno" e lo ignora se non viene utilizzato in una riga. Tuttavia è da notare che in Python le funzioni ritornano None
di default.
Quando ero a scuola CS mio istruttore ha fatto un enorme affare sulla differenza tra le funzioni, le procedure, routine e metodi; molte domande sul tema dei crampi alle mani sono state risolte con matite meccaniche che mi si scaldavano nelle mani.
Basti dire che restituire sé è il modo OO definitivo per creare metodi di classe, ma Python consente più valori di ritorno, tuple, elenchi, oggetti, primitive o Nessuno.
Il concatenamento, come dicono, sta semplicemente mettendo la risposta all'ultima operazione nella successiva e il runtime di Python può ottimizzare quel tipo di cose. La comprensione dell'elenco è una forma integrata di questo. (Molto potente!)
Quindi in Python non è così importante che ogni metodo o funzione restituisca cose, motivo per cui il valore predefinito è Nessuno.
Esiste una scuola di pensiero secondo cui ogni azione in un programma dovrebbe riportare il suo successo, fallimento o ricondurre al contesto o all'oggetto che invoca, ma non parlava qui dei requisiti ADA di DOD. Se hai bisogno di ricevere feedback da un metodo, vai avanti o no, ma cerca di essere coerente al riguardo.
Se un metodo può fallire, dovrebbe restituire successo o fallimento o sollevare un'eccezione da gestire.
Un avvertimento è che se si utilizza l'idioma di ritorno, Python ti permetterà di assegnare tutti i tuoi metodi alle variabili e potresti pensare di ottenere un risultato di dati o un elenco quando stai effettivamente ottenendo l'oggetto.
I linguaggi restrittivi dei tipi gridano, gridano e si rompono quando provi a farlo, ma quelli interpretati (Python, Lua, Lisp) sono molto più dinamici.