gpt4 book ai didi

python - 为什么在此 Python 代码中允许使用大括号?

转载 作者:太空宇宙 更新时间:2023-11-03 14:45:54 26 4
gpt4 key购买 nike

Python 从未使用大括号来定义代码块,而是依赖于缩进;这是该语言的定义特征之一。 CPython 甚至还提供了一个小 cookie 来展示他们对此的强烈感受:

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

当我看到这个小片段发布到论坛(已删除)时,我认为它不可能工作。但确实如此!

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

>>> hi()
Hello

当这段代码似乎违反了语言语法时,为什么它可以工作?

最佳答案

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

此处使用了一些 Python 语法功能。首先,Python 允许单语句代码块紧跟在 : 之后。其次,在某些情况下允许表达式跨越多行。

如果 block 的主体超过一行,或者如果尝试了除函数调用之外的赋值或语句,则此代码将无法运行。

这里重做函数以使其更清楚发生了什么:

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

>>> hi2()
Hello
{None}

关于python - 为什么在此 Python 代码中允许使用大括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49496091/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com