当前位置: 首页 > news >正文

怎么按照屏幕比例做网站适应衡水网站建设联系电话

怎么按照屏幕比例做网站适应,衡水网站建设联系电话,广告设计需要学什么课程,网站改版 方案在 Python 中,yield 通常被认为是“生成多个值”的工具,但其实它的作用远不止如此。尤其当我们配合 .send() 方法使用时,yield 不只是“抛出值”,还变成了一个表达式 —— 能够接收来自外部的输入。 这篇文章将深入解释两个关键问…

在 Python 中,yield 通常被认为是“生成多个值”的工具,但其实它的作用远不止如此。尤其当我们配合 .send() 方法使用时,yield 不只是“抛出值”,还变成了一个表达式 —— 能够接收来自外部的输入

这篇文章将深入解释两个关键问题:

  • yield 表达式的值是从哪来的?
  • 使用 send() 和不使用 send() 的区别是什么?

一、基本示例

def greeter():name = yield "你是谁?"yield f"你好,{name}"g = greeter()
print(next(g))         # 输出: 你是谁?
print(g.send("张三"))  # 输出: 你好,张三

重点一:send(x) 会把 x 赋值给上一个 yield 表达式

让我们重点关注这一行代码:

name = yield "你是谁?"

这是一个“暂停点 + 接收点”:

  • yield "你是谁?" 会将 "你是谁?" 发出(返回给调用者),并暂停函数;

  • 当我们调用 g.send("张三") 时,Python 会:

    • 恢复生成器的执行;
    • "张三" 作为 yield 表达式的返回值;
    • 也就是:name = "张三"

✅ 图示等价理解:

name = yield "你是谁?"
# 调用 g.send("张三") 后,相当于:
name = "张三"

重点二:如果不用 send()yield 表达式的值是 None

来看另一个例子:

def greeter():name = yield "你是谁?"print(f"你好,{name}")g = greeter()
print(next(g))    # 第一次执行,返回 "你是谁?"
print(next(g))    # 第二次执行,没有 send,name 是多少?

✅ 输出:

你是谁?
你好,None

因为第二次使用的是 next(g),而不是 send(x),所以:

yield 表达式的返回值默认是 None


二、完整对比总结表

操作方式功能说明yield 表达式的值
next(generator)恢复执行但不提供返回值None
generator.send(x)恢复执行并将 x 作为返回值x(赋值给 yield 表达式)

三、思维模型类比:问答式通信

question = yield "你是谁?"
  • yield 提出一个问题;
  • 外部使用 send("张三") 作为回答;
  • 于是 question = "张三"

这就像是协程之间的双向通信,是构建调度器、LLM代理、LangGraph等系统的核心通信模式。


四、以三段式协程对话为例

def dialogue():name = yield "你是谁?"age = yield f"你好,{name},你几岁?"yield f"{name},你今年 {age} 岁了!"g = dialogue()
print(next(g))           # → "你是谁?"
print(g.send("张三"))    # → "你好,张三,你几岁?"
print(g.send(18))        # → "张三,你今年 18 岁了!"

输出:

你是谁?
你好,张三,你几岁?
张三,你今年 18 岁了!

五、总结

  • yield 可以是表达式;
  • send(x)x 作为上一个 yield 表达式的返回值;
  • 如果不用 send() 而用 next(),返回值默认是 None
  • yield + send() 构成了 Python 协程通信的基础机制。

🔚 推荐阅读

  • Python官方文档:yield expressions
  • PEP 342 – Coroutines via Enhanced Generators
http://www.dtcms.com/a/444776.html

相关文章:

  • 学校网站备案怎么做营销型网站要多少钱
  • 网站建设与管理收获自助建站信息网
  • 电脑个人网站怎么做WordPress开cdn支付
  • 电子商务网站建设技术有哪些方面网站视频弹窗广告代码
  • 带数据库的网站怎么建jsp和php哪个做网站快
  • 英文外贸商城网站设计超简单手工小制作
  • 嘉兴网站公司哪家好软件技术毕业做什么工作
  • 工信部资质查询网站天津小程序网站开发公司
  • 网站后台申请邮箱天津做网站的公司
  • 怎么注册自己网站wordpress word粘贴
  • 如何快速提高网站关键词排名wordpress 退出登录
  • 厦门网站推广公司网站建设化学图片
  • 怎样选择 网站建设桐乡市城乡规划建设局网站
  • 开一家网站建设公司要多少钱wordpress网站制作app
  • 网站建设ssc源码做网站数据库设计
  • 石家庄网站seo服务医疗网站建设策划
  • 网站开发一般用什么服务器网站跳出率因素
  • 设计公司网站设计标签下载wordpress
  • 怎么建设一个购物网站西安 房产网站建设
  • 网站设计方案案例分析微信网页版注册
  • 福田手机网站建设wordpress的标签设置主页
  • 网站的营销与推广建站是什么东西
  • 求个网站你懂我的意思2021网站建设制作周期
  • wordpress 音乐网站19楼网站模板
  • 佛山新网站建设怎么样合肥网站制作联系方式
  • 西咸新区规划建设局网站网络推广营销服务
  • 企业怎么在网站上做宣传搭建网站的网站
  • js验证网站广告联盟下载app
  • 成都建设银行网站视觉设计工作室
  • 金华建设监理协会网站网站结构 扁平结构 树状结构