为什么我们必须使用赋值表达式来获取await的返回值?

q0987
import asyncio
from asyncio import StreamReader

async def echo(reader: StreamReader):
    try:
        while data := await reader.readline():
            pass

问题>为什么我们必须在data := await这里代替data = await

来自python编译器的错误:

while data = await reader.readline():
           ^ SyntaxError: invalid syntax
内森·休斯(Nathan Hughes)

分配的=目的是明确设计成在较大的表达式内不做这种嵌套的副作用。使用其他语言(用C语言看着您),人们可以键入=他们打算使用的位置,==并偶然分配一些东西。有关为何以这种方式设计的更多讨论,请参见此问题=

赋值=是一个语句,而不是一个表达式,它的取值不等于等号右侧的内容。这意味着没有时间来决定是否继续进行测试。:=(AKA海象运营商)提供的值,而可以测试,看该问题

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我们不能使用C中的表达式为全局变量赋值?

来自分类Dev

为什么我不能在方法中混合使用返回值和表达式

来自分类Dev

为什么我们不能使用表达式强健的构造函数?

来自分类Dev

为什么我们将## * /表达式与bash变量一起使用

来自分类Dev

为什么我已经赋值但为什么会得到无效值表达式

来自分类Dev

为什么在我们可以使用简单的 return 语句时使用了函数表达式

来自分类Dev

为什么我们使用>>从RGB获取颜色值?

来自分类Dev

为什么我们不能通过class-member-access表达式使用嵌套类型?

来自分类Dev

为什么我们强制转换malloc的返回值?

来自分类Dev

为什么我们要强制转换malloc的返回值?

来自分类Dev

\\ s,对于正则表达式,为什么我们需要2个“ \”

来自分类Dev

我们可以使用属性文件中的表达式获取属性吗

来自分类Dev

我们可以在xpath值中使用正则表达式吗?

来自分类Dev

为什么我们在此表达式中使用_ str.replace(/ [\ W _] / g,'').toLowerCase(); 我们也可以使用/ [\ W] / g,但是为什么要使用下划线?

来自分类Dev

我们何时以及为什么必须使用 malloc?

来自分类Dev

为什么我们在赋值运算符重载而不是在正负运算中使用引用返回?

来自分类Dev

为什么我们在赋值运算符重载而不是在正负运算中使用引用返回?

来自分类Dev

我们为什么不使用简单的二进制值来压缩数据

来自分类Dev

为什么我必须在正则表达式的正则表达式中使用replace?

来自分类Dev

我们如何使用以正则表达式(/ ^ myString / g)开头的字符串来拆分

来自分类Dev

为什么我们将/和/放在以javascript等语言表示的正则表达式的开头和结尾?

来自分类Dev

在Java中,为什么我们需要在布尔表达式中减去一些数字?

来自分类Dev

为什么我们不能将 lambda 表达式直接分配给 Object 类型的引用变量?

来自分类Dev

返回值的子表达式

来自分类Dev

从lambdas表达式返回值?

来自分类Dev

为什么正则表达式匹配在nodejs中返回比正常更多的返回值?

来自分类Dev

为什么我们可以使用数组快速返回多个值时使用元组

来自分类Dev

如果python赋值不返回值,我们该怎么做a = b = c = 42

来自分类Dev

如果python赋值不返回值,我们该怎么做a = b = c = 42

Related 相关文章

  1. 1

    为什么我们不能使用C中的表达式为全局变量赋值?

  2. 2

    为什么我不能在方法中混合使用返回值和表达式

  3. 3

    为什么我们不能使用表达式强健的构造函数?

  4. 4

    为什么我们将## * /表达式与bash变量一起使用

  5. 5

    为什么我已经赋值但为什么会得到无效值表达式

  6. 6

    为什么在我们可以使用简单的 return 语句时使用了函数表达式

  7. 7

    为什么我们使用>>从RGB获取颜色值?

  8. 8

    为什么我们不能通过class-member-access表达式使用嵌套类型?

  9. 9

    为什么我们强制转换malloc的返回值?

  10. 10

    为什么我们要强制转换malloc的返回值?

  11. 11

    \\ s,对于正则表达式,为什么我们需要2个“ \”

  12. 12

    我们可以使用属性文件中的表达式获取属性吗

  13. 13

    我们可以在xpath值中使用正则表达式吗?

  14. 14

    为什么我们在此表达式中使用_ str.replace(/ [\ W _] / g,'').toLowerCase(); 我们也可以使用/ [\ W] / g,但是为什么要使用下划线?

  15. 15

    我们何时以及为什么必须使用 malloc?

  16. 16

    为什么我们在赋值运算符重载而不是在正负运算中使用引用返回?

  17. 17

    为什么我们在赋值运算符重载而不是在正负运算中使用引用返回?

  18. 18

    我们为什么不使用简单的二进制值来压缩数据

  19. 19

    为什么我必须在正则表达式的正则表达式中使用replace?

  20. 20

    我们如何使用以正则表达式(/ ^ myString / g)开头的字符串来拆分

  21. 21

    为什么我们将/和/放在以javascript等语言表示的正则表达式的开头和结尾?

  22. 22

    在Java中,为什么我们需要在布尔表达式中减去一些数字?

  23. 23

    为什么我们不能将 lambda 表达式直接分配给 Object 类型的引用变量?

  24. 24

    返回值的子表达式

  25. 25

    从lambdas表达式返回值?

  26. 26

    为什么正则表达式匹配在nodejs中返回比正常更多的返回值?

  27. 27

    为什么我们可以使用数组快速返回多个值时使用元组

  28. 28

    如果python赋值不返回值,我们该怎么做a = b = c = 42

  29. 29

    如果python赋值不返回值,我们该怎么做a = b = c = 42

热门标签

归档