2024-09-30 00:41:29 发布
网友
Python从来没有使用大括号来定义代码块,而是依赖于缩进;这是该语言的定义特性之一。CPython甚至给了你一个小甜饼,来表达他们对此的强烈感受:
>>> from __future__ import braces SyntaxError: not a chance
当我看到这个小片段贴到一个论坛(自从被删除)时,我认为它不可能起作用。但确实如此!在
当这段代码似乎违反了语言语法时,为什么还要工作?在
大括号并不像在其他语言中那样定义代码块,而是定义了一个^{}。正在计算print函数,并将其返回值(None)放入集合中。一旦创建了集合,它就会立即被丢弃,因为它没有被分配给任何东西。在
print
None
这里使用了两个Python语法特性。首先,Python允许一个语句代码块紧跟在:之后。其次,在某些情况下,一个表达式可以跨越多行。在
:
如果块体不止一行,或者尝试了除函数调用以外的赋值或语句,则此代码将无法工作。在
以下是对函数的重做,以使其更清楚发生了什么:
>>> def hi2(): print( { print('Hello') } ) >>> hi2() Hello {None}
大括号并不像在其他语言中那样定义代码块,而是定义了一个^{} 。正在计算
print
函数,并将其返回值(None
)放入集合中。一旦创建了集合,它就会立即被丢弃,因为它没有被分配给任何东西。在这里使用了两个Python语法特性。首先,Python允许一个语句代码块紧跟在
:
之后。其次,在某些情况下,一个表达式可以跨越多行。在如果块体不止一行,或者尝试了除函数调用以外的赋值或语句,则此代码将无法工作。在
以下是对函数的重做,以使其更清楚发生了什么:
相关问题 更多 >
编程相关推荐