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

旅游管理网站业务模块女生适合学什么专业

旅游管理网站业务模块,女生适合学什么专业,做外贸网站好的公司,自建网站三种模式1、什么是yield关键字 yield 是 Python 中的一个关键字#xff0c;它用于定义生成器函数。生成器是一种特殊的迭代器#xff0c;它可以在遍历过程中逐步产生值#xff0c;而不是一次性生成所有值并将其存储在内存中。这使得生成器非常适合处理大量数据或无限序列#xff0…1、什么是yield关键字 yield 是 Python 中的一个关键字它用于定义生成器函数。生成器是一种特殊的迭代器它可以在遍历过程中逐步产生值而不是一次性生成所有值并将其存储在内存中。这使得生成器非常适合处理大量数据或无限序列因为它们只在需要时才生成下一个值从而节省了内存。 当你在一个函数中使用 yield 语句时这个函数就变成了一个生成器函数。调用生成器函数并不会立即执行其中的代码而是返回一个生成器对象。当对这个生成器对象进行迭代例如通过 for 循环或者调用 next() 函数时生成器函数会从上次暂停的地方继续执行直到遇到下一个 yield 语句然后返回当前的值并再次暂停等待下一次迭代。 eg斐波那契函数 def fibonacci(n):a, b 0, 1for _ in range(n):yield aa, b b, a b# 使用生成器 for num in fibonacci(10):print(num) 在这个例子中fibonacci 是一个生成器函数它会生成前 n 个斐波那契数。每次迭代都会计算下一个斐波那契数并通过 yield 返回该数值而不占用额外的内存空间来存储整个序列。 2、使用方法 1、yield 单独使用 在这种情况下yield 不返回任何值实际上它会返回 None。这种方式通常用于创建一个简单的迭代器当只需要控制流而不需要传递具体值时。 def simple_generator():yieldprint(After first yield)yieldprint(After second yield)gen simple_generator() next(gen) # 代码运行到第一个yield后停止没有打印任何内容 next(gen) # 代码从第一个打印语句开始执行然后遇到yield停止运行打印第一个打印语句 next(gen) # 代码从第二个执行语句开始执行打印第二个语句但是没有了yield报停止迭代异常 2、基本用法返回值并暂停执行 这是最基础的用法yield 可以用来代替 return 返回一个值给调用者但是不会终止函数的执行。相反它会保存函数的状态并且可以在下次迭代时从中断的地方继续执行。 def simple_generator():yield 1yield 2yield 3if __name__ __main__:a simple_generator()print(a.__next__())print(a.__next__())print(a.__next__()) 依次打印1,2,3每次调用生成一个值 如果调用的次数超过可迭代的次数比如上述代码再次调用 print(a.__next__())会报StopIteration错误 3、yield 前边使用一个变量接收 yield 表达式可以出现在赋值语句的右侧允许从外部向生成器发送数据。这通过 .send() 方法实现发送的数据将作为 yield 表达式的结果被接收到。 def echo():while True:received yieldprint(fReceived: {received})e echo() next(e) # 必须先启动生成器 e.send(hello) # 输出Received: hello e.send(world) # 输出Received: world next(e)代码运行到yield这行后停止运行然后调用send方法 相当于给received 赋值然后执行打印语句然后又执行到yiel语句停止 再次调用send方法仍然是这样继续操作 在这个例子中received 变量接收了从外部发送进来的值并打印出来。需要注意的是在第一次调用 .send() 方法之前必须至少调用一次 next() 来启动生成器。 4、yield from yield from 是 Python 中用于简化从子生成器中提取值的过程的一种语法。它使得你可以更方便地将一个生成器委托给另一个生成器从而创建更复杂的迭代模式。使用 yield from 可以减少代码量并且使代码更加清晰易读。 yield from 的基本含义 当你在一个生成器函数中使用 yield from iterable 时Python 会自动迭代 iterable并且对于每一个产生的值都会执行一次 yield。这相当于在每次迭代时都调用 yield 来返回当前的值给外部调用者。此外yield from 还可以处理异常和发送值给子生成器这对于实现协程非常有用。 使用场景 1. **简化嵌套循环** 2. **委派到子生成器** 3. **处理异常** 4. **发送值给子生成器** 示例说明 简化嵌套循环 假设你有一个包含多个列表的列表你想一次性迭代所有元素python def flatten(nested_list):for sublist in nested_list:for item in sublist:yield item# 使用 yield from 简化上面的代码 def flatten_with_yield_from(nested_list):for sublist in nested_list:yield from sublistnested [[1, 2, 3], [4, 5], [6]] for num in flatten_with_yield_from(nested):print(num) 委派到子生成器 如果你有一个复杂的迭代逻辑可以将其拆分成几个子生成器然后通过 yield from 将它们连接起来 def generator_one():yield oneyield twodef generator_two():yield threeyield fourdef combined_generator():yield from generator_one()yield from generator_two()for value in combined_generator():print(value) 输出将是 one two three four 处理异常 yield from 也可以传递异常给子生成器 def subgen():try:while True:x yieldprint(fReceived: {x})except GeneratorExit:print(Sub-generator is closing)def delegator():yield from subgen()g delegator() next(g) # 启动生成器 g.send(hello) g.close() # 关闭生成器触发 GeneratorExit 异常 发送值给子生成器 除了传递异常yield from 还可以让主生成器向子生成器发送值python def subgen():while True:x yieldprint(fSub-generator received: {x})def delegator():sg subgen()next(sg) # 启动子生成器yield from sgg delegator() next(g) # 启动主生成器 g.send(hello) # 发送值给子生成器 关键区别 层次结构 yield 通常用于定义单层生成器逻辑。yield from 用于委派到子生成器可以简化多层迭代逻辑。 代码简化 使用 yield 时如果需要遍历一个可迭代对象你必须显式地写出循环来逐一 yield 每个元素。yield from 自动完成这一过程使得代码更加简洁明了。 双向通信 yield 只能直接与调用者交互。yield from 支持主生成器与子生成器之间的双向通信包括发送值和抛出异常。 异常处理 yield 需要在主生成器中手动处理异常。yield from 自动处理并传播异常给子生成器允许更复杂的错误管理。
http://www.hkea.cn/news/14343961/

相关文章:

  • 网站怎么做301重定向企业邮箱注册要钱吗
  • 那家做网站比较好秒收录关键词代发
  • 手机看网站付费推广渠道有哪些
  • 南昌网站建设好企业网站建设工程信息网官网首页
  • 太原建站模板搭建wordpress 主题详情
  • 网站建设费 项目经费做儿童网站赚钱吗
  • 怎样可以做网站站长温州通告最新
  • 网页设计费用seo短视频网页
  • 逻辑网络设计seo优化知识
  • 个人网站搭建步骤用wordpress建站域名和空间哪里买比较好
  • 做网站需要哪些东西和步骤零食网站策划书
  • 网站建设需求材料做问卷哪个网站好
  • 网站建设后怎么赚钱账号权重查询
  • 智慧团建官方网站登录注册域名的官方网站
  • 010-58813333 可信网站注册公司在哪个网站注册
  • 临沂的网站建设什么是一学一做视频网站好
  • 中卫网站推广制作wordpress读者墙 插件
  • 手机网站要备案吗重庆新闻发布会
  • js网站变灰色代码好项目网
  • 网站建设多少价格如何做链接淘宝客的网站
  • 网页建站怎么做商机互联做网站怎么样
  • 服务器架设国外做违法网站网页制作软件html
  • 学校网站模板 dede广州seo推广系统
  • 怎么自己建设公司网站长春 网络公司
  • 白城做网站素材网站 源码
  • 国外移动网站设计创建一个购物网站
  • 怎么使用wordpress建站电子商务网站开发综合实训报告
  • 网站开发制作云盘浏览国外网站dns
  • 江门 网站设计xyz域名免费注册
  • 南京产品网站建设收费seo网站优化软件