重构 – 迭代的更多pythonic方式
发布时间:2020-12-20 12:37:05 所属栏目:Python 来源:网络整理
导读:我正在使用属于商业软件API的模块.好消息是有一个 python模块 – 坏消息是它非常unpythonic. 要迭代行,使用以下语法: cursor = gp.getcursor(table)row = cursor.next()while row: #do something with row row = cursor.next() 处理这种情况的最pythonic方
我正在使用属于商业软件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): <do something> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |