La maggior parte delle lingue sono consapevoli dell'idioma del "ritorno in sé", e lo ignorano se lo è
non usato in una linea. Tuttavia è degno di nota il fatto che in Python, funzioni
restituisce None
per impostazione predefinita.
Quando ero a scuola CS, il mio istruttore ha fatto un accordo enorme su
la differenza tra funzioni, procedure, routine e metodi; molte domande sui saggi a mano-cramping sono state messe a fuoco con matite meccaniche che si sono scaldate tra le mie mani su tutto ciò.
Basti dire che il ritorno di sé è il modo OO definitivo di creare
metodi di classe, ma Python consente più valori di ritorno, tuple, liste, oggetti, primitive o Nessuna.
Chaining, come dicono, sta semplicemente mettendo la risposta all'ultima operazione nel prossimo, e il runtime di Python può ottimizzare quel genere di cose. La comprensione delle liste è una forma incorporata di questo. (Molto potente!)
Quindi in Python non è così importante che ogni metodo o funzione restituisca qualcosa,
ecco perché il valore predefinito è Nessuno.
C'è una scuola di pensiero che ogni azione in un programma dovrebbe riportare il suo successo, fallimento o risultato al suo contesto o oggetto invocante, ma poi
non stavano parlando i requisiti ADA di DOD qui. Se hai bisogno di ricevere un feedback
un metodo, vai avanti o no, ma cerca di essere coerente a riguardo.
Se un metodo può fallire, dovrebbe restituire successo o fallimento o generare un'eccezione da gestire.
Un avvertimento è che se si utilizza il ritorno self idiom, Python ti permetterà di assegnare tutti i tuoi metodi alle variabili e potresti pensare che stai ricevendo un risultato di dati o un elenco quando stai effettivamente ricevendo l'oggetto.
I linguaggi restrittivi di tipo urlano e urlano e si spezzano quando provi a farlo, ma quelli interpretati (Python, Lua, Lisp) sono molto più dinamici.