在将其传递给函数时,为什么要在Python中省略生成器的括号?

发布于 2021-01-29 18:01:35

我只是在Python中尝试使用不同的语法来将生成器作为函数的参数传递给我,但我意识到尽管我一直在这样做,

>>> sum((j for j in xrange(5)))
10

这也可以:

>>> sum(j for j in xrange(5))
10

在Linux上的Python 2.6.6上对此进行了测试。到底发生了什么事?只是语法糖吗?毕竟,解译器通常无法理解解包的生成器:

>>> j for j in xrange(5)
  File "<stdin>", line 1
    j for j in xrange(5)
        ^
SyntaxError: invalid syntax
关注者
0
被浏览
53
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    我确定阅读python语法会回答这个问题。

    如果您更喜欢普通英语而不是语法:PEP-289对此进行了说明。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看