Я получаю немного головную боль, пытаясь понять, как организовать модули и классы вместе. Исходя из С++, я использую классы, инкапсулирующие все данные и методы, необходимые для обработки этих данных. В python есть модули, но из кода, на который я смотрел, у некоторых людей есть много свободных функций, хранящихся в модулях, тогда как другие почти всегда связывают свои функции с классами как методы.
Например, у меня есть структура данных и вы хотите записать ее на диск.
Один из способов - реализовать метод сохранения для этого объекта, чтобы я мог просто набрать
MyObject.save(filename)
или что-то в этом роде. Другой метод, который я видел в равной пропорции, - это что-то вроде
from myutils import readwrite
readwrite.save(MyObject,filename)
Это небольшой пример, и я не уверен, что проблема с python связана с этой проблемой вообще, но мой общий вопрос заключается в том, что является лучшей питонической практикой в плане функций против организации методов?