Більшість мов знають ідіому "повернення", і ігнорують її, якщо вона не використовується в рядку. Однак помітно, що в Python функції повертаються None
за замовчуванням.
Коли я був у школі CS, мій інструктор зробив велику справу щодо різниці між функціями, процедурами, процедурами та методами; багато запитань із нарису рукотворних матеріалів опиралися механічними олівцями, що нагрівались у мене про все це.
Досить сказати, повернення self - це остаточний спосіб OO для створення класових методів, але Python дозволяє отримати кілька повернених значень, кортежів, списків, об'єктів, примітивів або None.
Як вони заявляють, ланцюжок - це просто перенесення відповіді на останню операцію в наступну, і час виконання Python може оптимізувати таку річ. Означення списку є вбудованою формою цього. (Дуже потужно!)
Тож у Python не так важливо, щоб кожен метод чи функція повертала речі, тому за замовчуванням немає None.
Існує школа думки, що кожна дія в програмі повинна повідомляти про її успіх, провал або результат у контексті або об'єкті, що викликає, але тоді не говорили про вимоги DOD ADA. Якщо вам потрібно отримати зворотний зв’язок від методу, продовжуйте, чи ні, але намагайтеся бути послідовними щодо цього.
Якщо метод може виявитися невдалим, він повинен повернути успіх чи невдачу або створити виняток, з яким обробляють
Одне застереження полягає в тому, що якщо ви використовуєте ідіому, що повертається, Python дозволить призначити всі ваші методи змінним, і ви можете подумати, що ви отримуєте результат даних або список, коли ви фактично отримуєте об'єкт.
Мови, що обмежують тип, кричать, кричать і ламаються, коли ви намагаєтесь це зробити, але інтерпретовані (Python, Lua, Lisp) набагато динамічніші.