Як зазначали інші, немає правильного способу замовити ваші методи. Можливо, пропозиція PEP була б корисною, але в будь-якому випадку. Дозвольте мені спробувати підійти до Вашого питання якомога об’єктивніше.
Спочатку інтерфейси: Відкриті методи та магічні функції Python визначають інтерфейс класу. Здебільшого ви та інші розробники хочете використовувати клас, а не змінювати його. Таким чином, їх зацікавить інтерфейс цього класу. Поміщення його першим у вихідному коді дозволяє уникнути прокрутки деталей реалізації, які вас не хвилюють.
Властивості, магічні методи , загальнодоступні методи: важко визначити найкращий порядок між цими трьома, які всі є частиною інтерфейсу класу. Як каже @EthanFurman, найважливіше дотримуватися однієї системи для всього проекту. Як правило, люди розраховують __init__()на найкращу першу функцію в класі, тому я продовжую роботу з іншими магічними методами прямо нижче.
Порядок читання: В основному є два способи розповісти історію: знизу вгору або зверху вниз. Поставивши на перший план функції високого рівня, розробник може приблизно зрозуміти клас, прочитавши перші пару рядків. В іншому випадку потрібно було б прочитати весь клас, щоб зрозуміти клас, і більшість розробників не мають на це часу. Як правило, методи ставлять вище всіх методів, що викликаються з їхнього тіла.
Методи класів та статичні методи: Зазвичай це передбачається описаним вище порядком читання . Звичайні методи можуть викликати всі методи часу і, отже, на першому місці. Методи класу можуть викликати лише методи класу та статичні методи, і вони йдуть далі. Статичні методи не можуть викликати інші методи класу і йдуть останніми.
Сподіваюся, це допомагає. Більшість цих правил, до речі, не є специфічними для Python. Я не знаю мови, яка застосовує порядок методів, але якщо так, це було б досить цікаво, і будь ласка, коментуйте.