У меня есть два метода, один для обновления базы данных, а другой - нет.Оба могут делегировать общий частный метод, если они совместно используют много кода.
Разделив два метода, для вызывающих абонентов становится ясно, какова различная семантика между ними, что упрощает документирование различных методов,и уточняет, какие возвращаемые типы ожидать.Поскольку вы можете извлекать общий код в приватные методы объекта, вам не нужно беспокоиться о дублировании кода.
Что касается возврата результатов запроса, то это будет зависеть от того, загружаете ли вы все результаты из базы данных до этого.возврат или возврат объекта курсора.Я бы хотел сделать что-то вроде следующего:
with db.executeQuery('SELECT * FROM my_table') as results:
for row in results:
print row['col1'], row['col2']
... поэтому метод executeQuery
возвращает объект ContextManager
(который очищает все открытые соединения, если это необходимо), который такжедействует как Generator
.И результаты от генератора действуют только для чтения dict
s.