Hầu hết các ngôn ngữ đều nhận thức được thành ngữ 'tự trả về' và bỏ qua nó nếu nó không được sử dụng trong một dòng. Tuy nhiên, đáng chú ý là trong Python, các hàm trả về None
theo mặc định.
Khi tôi ở trường CS, người hướng dẫn của tôi đã nói rất nhiều về sự khác biệt giữa các chức năng, thủ tục, thói quen và phương pháp; nhiều câu hỏi tiểu luận nhồi nhét bằng tay đã được đưa ra với bút chì cơ học đang nóng trong tay tôi về tất cả những điều đó.
Có thể nói, tự trả về là cách OO dứt khoát để tạo các phương thức lớp, nhưng Python cho phép nhiều giá trị trả về, bộ dữ liệu, danh sách, đối tượng, nguyên hàm hoặc Không có.
Chaining, như họ đã nói, chỉ đơn thuần là đưa câu trả lời cho thao tác cuối cùng vào hoạt động tiếp theo và thời gian chạy của Python có thể tối ưu hóa loại điều đó. Danh sách hiểu là một hình thức tích hợp của điều này. (Rất mạnh!)
Vì vậy, trong Python không quan trọng đến mức mọi phương thức hoặc hàm đều trả về mọi thứ, đó là lý do tại sao mặc định là Không có.
Có một trường phái cho rằng mọi hành động trong một chương trình nên báo cáo thành công, thất bại hoặc kết quả trở lại bối cảnh hoặc đối tượng của nó, nhưng sau đó không nói về Yêu cầu của DOD ADA ở đây. Nếu bạn cần nhận phản hồi từ một phương pháp, hãy tiếp tục hoặc không, nhưng cố gắng nhất quán về nó.
Nếu một phương thức có thể thất bại, nó sẽ trả về thành công hay thất bại hoặc đưa ra một ngoại lệ cần xử lý.
Một lưu ý là nếu bạn sử dụng thành ngữ tự trả về, Python sẽ cho phép bạn gán tất cả các phương thức của mình cho các biến và bạn có thể nghĩ rằng bạn đang nhận được kết quả dữ liệu hoặc danh sách khi bạn thực sự nhận được đối tượng.
Các ngôn ngữ hạn chế kiểu hét lên và la hét và phá vỡ khi bạn cố gắng làm điều này, nhưng những ngôn ngữ được giải thích (Python, Lua, Lisp) năng động hơn nhiều.