Większość języków jest świadoma idiomu „return self” i ignoruje go, jeśli nie jest używany w wierszu. Warto jednak zauważyć, że w Pythonie funkcje zwracają None
się domyślnie.
Kiedy byłem w szkole CS mój instruktor popełnił ogromny wiele o różnicy między funkcji, procedur, procedur i metod; wiele pytań na temat eseju o skurczach dłoni zostało wyrzuconych z ołówków mechanicznych, które rozgrzały się w moich rękach na ten temat.
Wystarczy powiedzieć, że zwracanie siebie jest ostatecznym sposobem OO do tworzenia metod klas, ale Python pozwala na wiele zwracanych wartości, krotek, list, obiektów, prymitywów lub Brak.
Łańcuchy, jak to ujęli, po prostu przekładają odpowiedź na ostatnią operację na następną, a środowisko wykonawcze Pythona może zoptymalizować tego rodzaju rzeczy. Wyjaśnienia list są wbudowaną formą tego. (Bardzo potężny!)
Tak więc w Pythonie nie jest tak ważne, aby każda metoda lub funkcja zwracała rzeczy, dlatego domyślną wartością jest None.
Istnieje szkoła myślenia, że każda akcja w programie powinna raportować swój sukces, niepowodzenie lub wynik z powrotem do kontekstu lub obiektu wywołującego, ale wtedy nie mówiły tutaj o wymaganiach DOD ADA. Jeśli potrzebujesz informacji zwrotnej na temat metody, śmiało bądź nie, ale staraj się być konsekwentny.
Jeśli metoda może zawieść, powinna zwrócić sukces lub porażkę lub zgłosić wyjątek do obsłużenia.
Jednym zastrzeżeniem jest to, że jeśli użyjesz zwrotnego idiomu, Python pozwoli ci przypisać wszystkie twoje metody do zmiennych i możesz pomyśleć, że otrzymujesz wynik danych lub listę, gdy faktycznie otrzymujesz obiekt.
Języki ograniczające pisanie krzyczą, krzyczą i łamią się, gdy próbujesz to zrobić, ale te interpretowane (Python, Lua, Lisp) są znacznie bardziej dynamiczne.