美文网首页Python
重构Python代码tips

重构Python代码tips

作者: 弦好想断 | 来源:发表于2020-11-26 10:12 被阅读0次
    • 将内部循环中的yield替换为yield from
      经常忽略的一个小窍门是 Python 的yield关键字有对应的为collections准备的yield from。因此无需使用 for 循环遍历集合。这使代码变短,并删除 for 中的额外变量。而且消除 for 循环后,yield from使程序运行效率提高约 15%。
      重构前:
    def get_content(entry):
        for block in entry.get_blocks():
            yield block
    

    重构后:

    def get_content(entry):
        yield from entry.get_blocks()
    
    • 使用 any() 而不是用于循环
      常见的模式是,我们需要查找是否集合中的一个或多个项符合某些条件。这可以通过 for 循环完成,例如:
    found = False
    for thing in things:
        if thing == other_thing:
            found = True
            break
    

    更简洁的方法,是使用 Python 的 any() 和 all()内置函数,来清楚地显示代码的意图。

    found = any(thing == other_thing for thing in things)
    

    当至少有一个元素计算为 True 时,any() 将返回 True,只有当所有元素都计算为 True 时,all() 将返回 True。
    如果对 any() 的调用找到一个值为 True 的元素,它可以立即返回。

    相关文章

      网友评论

        本文标题:重构Python代码tips

        本文链接:https://www.haomeiwen.com/subject/mhhniktx.html