fma*_*ark 3 python refactoring iterator
我正在使用属于商业软件API的模块.好消息是有一个python模块 - 坏消息是它非常unpythonic.
要迭代行,使用以下语法:
cursor = gp.getcursor(table)
row = cursor.next()
while row:
#do something with row
row = cursor.next()
Run Code Online (Sandbox Code Playgroud)
处理这种情况的最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
Run Code Online (Sandbox Code Playgroud)
这是一种改进,但感觉有点笨拙.有更多的pythonic方法吗?我应该在table类型周围创建一个包装类吗?
小智 11
假设Next和next中的一个是拼写错误并且它们都是相同的,那么您可以使用内置iter函数的不太知名的变体:
for row in iter(cursor.next, None):
<do something>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
507 次 |
| 最近记录: |