python教程—巨蟒屈服断裂-Python实用宝典

python教程—巨蟒屈服断裂

根据对这个问题的回答,c#中的yield break等价于python中的return。在正常情况下,'return'确实会停止生成器。但是,如果您的函数除了返回什么都不做,您将得到一个None not a empty iterator,它由c#中的yield break返回

根据这个question的答案,c#中的yield break等同于python中的return。在正常情况下,'return'确实会停止生成器。但是,如果您的函数除了返回什么都不做,您将得到一个None not a empty iterator,它由c#中的yield break返回

    def generate_nothing(): return for i in generate_nothing(): print i

您将得到一个TypeError: 'NoneType'对象不可迭代。
但是如果我在返回之前添加一个never run yield,这个函数将返回我所期望的结果。

    def generate_nothing(): if False: yield None return

如果工作,但似乎有线。谁有更好的主意?

谢谢,

回答

​Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

本文由 Python实用宝典 作者:Python实用宝典 发表,其版权均为 Python实用宝典 所有,文章内容系作者个人观点,不代表 Python实用宝典 对观点赞同或支持。如需转载,请注明文章来源。
0

发表评论