Я использую модуль, который является частью коммерческого программного обеспечения API. Хорошая новость в том, что есть модуль Python, плохая новость в том, что он довольно не пифоничен
Для итерации по строкам используется следующий синтаксис:
cursor = gp.getcursor(table)
row = cursor.next()
while row:
#do something with row
row = cursor.next()
Какой самый питонический способ справиться с этой ситуацией? Я рассмотрел создание функции / генератора первого класса и упаковку вызовов для цикла for в нем:
def cursor_iterator(cursor):
row = cursor.next()
while row:
yield row
row = cursor.next()
[...]
cursor = gp.getcursor(table)
for row in cursor_iterator(cursor):
# do something with row
Это улучшение, но кажется немного неуклюжим. Есть ли более питонический подход? Должен ли я создать класс-оболочку для типа table
?