当前位置: 首页 > 面试题库 >

Python中yield表达式的结果是什么?

仇炜
2023-03-14
问题内容

我知道yield将函数转换为生成器,但是yield表达式本身的返回值是多少?例如:

    def whizbang(): 
        for i in range(10): 
            x = yield i

x该函数执行时变量的值是什么?

我已经阅读了Python文档:http : //docs.python.org/reference/simple_stmts.html#grammar-
token-yield_stmt,
并且似乎没有提及yield表达式本身的值。


问题答案:

您还可以将send值赋给生成器。如果没有发送值,那么xNone的,否则x需要所发送的值。这是一些信息:http : //docs.python.org/whatsnew/2.5.html#pep-342-new-
generator-features

    >>> def whizbang():
            for i in range(10):
                x = yield i
                print 'got sent:', x


    >>> i = whizbang()
    >>> next(i)
    0
    >>> next(i)
    got sent: None
    1
    >>> i.send("hi")
    got sent: hi
    2


 类似资料:
  • 本文向大家介绍python之yield表达式学习,包括了python之yield表达式学习的使用技巧和注意事项,需要的朋友参考一下 python中有一个略微奇怪的表达式叫yield expression,本文就来探究一下这是个什么东西。一步一步来。 iterable mylist是一个列表(list),我们可以逐条取出每一个item,这个过程叫做iteration。像list这样可以用”for…i

  • 问题内容: 什么是%在计算?我似乎无法弄清楚它的作用。 例如,它算出计算的百分比吗:显然等于0。如何? 问题答案: (取模)运算符从第一个参数除以第二个参数得出余数。首先将数字参数转换为通用类型。右零参数引发ZeroDivisionError异常。参数可以是浮点数,例如3.14%0.7等于0.34(因为3.14等于4 * 0.7 + 0.34。)模运算符始终产生与第二个操作数具有相同符号的结果(或

  • 问题内容: 我有一个查询,可以使用公用表表达式来检索页面的所有模块和子模块。是否可以多次使用cte的结果? 例子 第一个选择有效,但是第二个选择引发错误“无效的对象名称’child_modules’”。 问题答案: 从该手册: 指定一个临时的命名结果集,称为公用表表达式(CTE)。这是从一个简单的查询派生的,并 在 单个 SELECT,INSERT,UPDATE或DELETE语句的执行范围内定义

  • 本文向大家介绍python 什么是lambda表达式?它有什么好处?相关面试题,主要包含被问及python 什么是lambda表达式?它有什么好处?时的应答技巧和注意事项,需要的朋友参考一下 简单来说,lambda表达式通常是当你需要使用一个函数,但是又不想费脑命名一个函数的时候使用,也就是通常所说的匿名函数

  • 问题内容: 我有一个记录ID列表,我想要从SQL Server 2008中的表中检索单个值。 我的查询是: “ IN”表达式包含数百个ID。ID列是表的主键。 如果我的桌子是这样的: 我将始终获得在“ IN”表达式中按出现顺序排序的结果的结果吗?如果没有,我正在考虑做: 问题答案: 不,您将不会总是获得基于的结果。 要明确,并添加一个子句。

  • 问题内容: 在查看在线代码示例时,有时会遇到通过使用new运算符将String常量分配给String对象的情况。 例如: 当然,与 我不熟悉这种语法,也不知道其目的或效果。由于String常量通常存储在常量池中,然后JVM以任何表示形式存储在处理String常量中,因此是否还会在堆上分配任何内容? 问题答案: 你可能需要的一个地方new String(String)是强制子字符串复制到新的基础字符