Python中send方法避坑指南
时间:2026-09-08 10:01:03
在 Python 中,若通过 yield 创建生成器并用 __next__() 调用,可能会遇到返回 None 的情况。为解决此问题,可采用 send() 方法替代。以下通过具体示例演示其使用方式,展示如何有效传递值并控制生成器的执行流程,从而避免出现 None 值的问题。
打开PyCharm,双击启动后新建Python文件,创建一个名为count的函数,具体操作所示。

创建对象c,调用其count方法,并将返回值赋给变量c。

第三步,调用print()函数输出c的__next__()方法结果,观察显示内容,所示。

第四步,重新调用一次__next__()方法,观察输出结果,此时会显示一个None值,具体效果所示。

第五步,调用send()方法查看两个__next__()方法间的结果,所示。

第六步,保存代码并运行查看结果,我们发现send方法需要传入参数,这样可以解决问题,如调用next之后返回none。效果如下所示。











