当您调用包含yield的函数时会发生什么?

乔希

在这里阅读以下示例:

>>> def double_inputs():
...     while True:      # Line 1
...         x = yield    # Line 2
...         yield x * 2  # Line 3
...
>>> gen = double_inputs()
>>> next(gen)       # Run up to the first yield
>>> gen.send(10)    # goes into 'x' variable

如果我正确理解以上内容,似乎意味着Python实际上要等到next(gen)“运行到”Line 2函数主体为止换句话说,在我们调用之前,解释器不会开始执行函数的主体next

  1. 这是真的吗?
  2. 据我所知,Python不会进行AOT编译,除了解析代码并确保它是有效的Python之外,它“不会超前”。这个对吗?
  3. 如果上述条件成立,那么当我调用Python时double_inputs(),它将如何知道它需要等到我调用next(gen)才能进入循环while True
切普纳

正确。调用double_inputs永远不会执行任何代码。它只是返回一个generator对象。解析语句yield时发现表达式在主体中的存在会更改语句的语义以创建对象而不是对象。defdefgeneratorfunction

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当您从C ++函数返回引用时会发生什么?

来自分类Dev

从派生类调用基函数时会发生什么?

来自分类Dev

当您用尽PID时会发生什么?

来自分类Dev

在视觉上,当您使用&符号调用同一进程时会发生什么

来自分类Dev

当您从非AD帐户调用UserPrincipal.Current.GivenName时会发生什么?

来自分类Dev

定义函数时会发生什么?

来自分类Dev

当您从函数返回JavaScript语句时会发生什么,例如return console.log(“ Hello”)

来自分类Dev

当您通过指针传递将内存地址传递给函数时会发生什么?

来自分类Dev

当您从《虚无》中抽奖时会发生什么?

来自分类Dev

当您打开/关闭手柄时会发生什么?

来自分类Dev

当您移到非右值参考时会发生什么?

来自分类Dev

当您使用浏览器返回时会发生什么?

来自分类Dev

当您模糊DOM元素时会发生什么

来自分类Dev

当您“不安装而尝试Ubuntu”时会发生什么?

来自分类Dev

当您“不安装而尝试Ubuntu”时会发生什么?

来自分类Dev

当您仅实例化“ new objectName()”时会发生什么

来自分类Dev

当我在嵌套的 React 组件中调用作为 props 传递的函数时会发生什么?

来自分类Dev

当我调用“ BufferStrategy.show()”时会发生什么?

来自分类Dev

在现有变量上调用malloc时会发生什么?

来自分类Dev

当我多次调用requestAnimationFrame时会发生什么

来自分类Dev

同步Lambda调用-受到限制时会发生什么?

来自分类Dev

从中调用Overridden方法时会发生什么?

来自分类Dev

当方法调用自身的return语句时会发生什么?递归。

来自分类Dev

当我调用“ BufferStrategy.show()”时会发生什么?

来自分类Dev

当函数在python中返回自己的名称时会发生什么?

来自分类Dev

当flet在递归函数中时会发生什么?

来自分类Dev

将函数用作参数时会发生什么情况?

来自分类Dev

当 Promise 从异步函数返回时会发生什么?

来自分类Dev

当调度程序函数执行未完成并且调度程序调用该函数时会发生什么

Related 相关文章

  1. 1

    当您从C ++函数返回引用时会发生什么?

  2. 2

    从派生类调用基函数时会发生什么?

  3. 3

    当您用尽PID时会发生什么?

  4. 4

    在视觉上,当您使用&符号调用同一进程时会发生什么

  5. 5

    当您从非AD帐户调用UserPrincipal.Current.GivenName时会发生什么?

  6. 6

    定义函数时会发生什么?

  7. 7

    当您从函数返回JavaScript语句时会发生什么,例如return console.log(“ Hello”)

  8. 8

    当您通过指针传递将内存地址传递给函数时会发生什么?

  9. 9

    当您从《虚无》中抽奖时会发生什么?

  10. 10

    当您打开/关闭手柄时会发生什么?

  11. 11

    当您移到非右值参考时会发生什么?

  12. 12

    当您使用浏览器返回时会发生什么?

  13. 13

    当您模糊DOM元素时会发生什么

  14. 14

    当您“不安装而尝试Ubuntu”时会发生什么?

  15. 15

    当您“不安装而尝试Ubuntu”时会发生什么?

  16. 16

    当您仅实例化“ new objectName()”时会发生什么

  17. 17

    当我在嵌套的 React 组件中调用作为 props 传递的函数时会发生什么?

  18. 18

    当我调用“ BufferStrategy.show()”时会发生什么?

  19. 19

    在现有变量上调用malloc时会发生什么?

  20. 20

    当我多次调用requestAnimationFrame时会发生什么

  21. 21

    同步Lambda调用-受到限制时会发生什么?

  22. 22

    从中调用Overridden方法时会发生什么?

  23. 23

    当方法调用自身的return语句时会发生什么?递归。

  24. 24

    当我调用“ BufferStrategy.show()”时会发生什么?

  25. 25

    当函数在python中返回自己的名称时会发生什么?

  26. 26

    当flet在递归函数中时会发生什么?

  27. 27

    将函数用作参数时会发生什么情况?

  28. 28

    当 Promise 从异步函数返回时会发生什么?

  29. 29

    当调度程序函数执行未完成并且调度程序调用该函数时会发生什么

热门标签

归档