我正在使用属于商业软件API的模块.好消息是有一个
python模块 – 坏消息是它非常unpythonic.
要迭代行,使用以下语法:
cursor = gp.getcursor(table)
row = cursor.next()
while row:
#do something with row
row = cursor.next()
处理这种情况的最pythonic方法是什么?我考虑过创建一个第一类函数/生成器并将调用包装到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
这是一种改进,但感觉有点笨拙.有更多的pythonic方法吗?我应该围绕表类型创建一个包装类吗?
假设Next和next中的一个是拼写错误并且它们都是相同的,那么您可以使用内置iter函数的不太知名的变体:
for row in iter(cursor.next, None):