La plupart des langues sont conscientes de l'idiome 'return self' et l'ignorent si elles ne sont pas utilisées dans une ligne. Cependant, il est à noter qu'en Python, les fonctions sont retournées None
par défaut.
Quand j'étais à l'école CS, mon instructeur a énormément parlé de la différence entre les fonctions, les procédures, les routines et les méthodes; beaucoup de questions de dissertation à la main ont été corrigées avec des crayons mécaniques qui me brûlaient les mains à propos de tout ça.
Je me contenterai de dire que le retour à soi-même est la méthode OO définitive pour créer des méthodes de classe, mais Python autorise plusieurs valeurs de retour, tuples, listes, objets, primitives ou Aucune.
Le chaînage, comme ils le disent, met simplement la réponse à la dernière opération dans la suivante, et l'exécution de Python peut optimiser ce genre de chose. Les compréhensions de liste en sont une forme intégrée. (Très puissant!)
Donc, en Python, il n’est pas très important que chaque méthode ou fonction retourne des éléments, raison pour laquelle la valeur par défaut est None.
Il existe une école de pensée selon laquelle chaque action d'un programme devrait rendre compte de son succès, de son échec ou de ses résultats en fonction de son contexte ou de son objet invoquant, mais ne parlait pas des exigences du DOD ADA ici. Si vous avez besoin d'obtenir des commentaires d'une méthode, continuez ou pas, mais essayez d'être cohérent à ce sujet.
Si une méthode peut échouer, elle devrait renvoyer succès ou échec ou générer une exception à gérer.
Un inconvénient est que si vous utilisez l'idiome de self return, Python vous permettra d'affecter toutes vos méthodes à des variables et vous penserez peut-être que vous obtenez un résultat de données ou une liste lorsque vous obtenez réellement l'objet.
Les langages qui restreignent le type crient et crient et se cassent lorsque vous essayez de faire cela, mais ceux interprétés (Python, Lua, Lisp) sont beaucoup plus dynamiques.