为什么在这个Python代码中允许使用大括号?

2024-09-30 00:41:29 发布

您现在位置:Python中文网/ 问答频道 /正文

Python从来没有使用大括号来定义代码块,而是依赖于缩进;这是该语言的定义特性之一。CPython甚至给了你一个小甜饼,来表达他们对此的强烈感受:

>>> from __future__ import braces
SyntaxError: not a chance

当我看到这个小片段贴到一个论坛(自从被删除)时,我认为它不可能起作用。但确实如此!在

^{pr2}$

当这段代码似乎违反了语言语法时,为什么还要工作?在


Tags: 代码fromimport语言定义notfuture特性
1条回答
网友
1楼 · 发布于 2024-09-30 00:41:29

大括号并不像在其他语言中那样定义代码块,而是定义了一个^{}。正在计算print函数,并将其返回值(None)放入集合中。一旦创建了集合,它就会立即被丢弃,因为它没有被分配给任何东西。在

这里使用了两个Python语法特性。首先,Python允许一个语句代码块紧跟在:之后。其次,在某些情况下,一个表达式可以跨越多行。在

如果块体不止一行,或者尝试了除函数调用以外的赋值或语句,则此代码将无法工作。在

以下是对函数的重做,以使其更清楚发生了什么:

>>> def hi2(): print(
    { print('Hello') }
    )

>>> hi2()
Hello
{None}

相关问题 更多 >

    热门问题