【发布时间】:2018-03-26 16:17:52
【问题描述】:
Python 从未使用大括号来定义代码块,而是依赖缩进;这是该语言的定义特征之一。 CPython 甚至提供了一个小 cookie 来展示他们对此的强烈感受:
>>> from __future__ import braces
SyntaxError: not a chance
当我看到这个小sn-p 发布到论坛(已删除)时,我认为它不可能工作。但确实如此!
>>> def hi(): {
print('Hello')
}
>>> hi()
Hello
当这段代码似乎违反语言语法时,为什么它会起作用?
【问题讨论】:
-
我投票决定将此问题作为离题结束,因为它属于关于 Python 中大括号的数十个其他线程中的任何一个的额外答案,例如stackoverflow.com/questions/118643/… ... 尤其是当它被同一个用户提出并立即回答时,这意味着它更像是一种好奇心,而不是描述真实问题的真实文件。
-
@ely 其他问题是关于为什么大括号不允许。如果您发现有人问他们为什么被允许,那将是重复的。
-
@MarkRansom 我没有说它是重复的。答案应该只是对如何 使用大括号进行缩进的问题的补充说明。这些问题不是在问为什么不允许使用大括号,而是在问如何使用大括号。所以有效的答案是使用第三方扩展,比如 pybraces,或者这个答案,但它显然不是一个单独的问题。
-
@MarkRansom 我认为这个问题的意图(询问这种特定的大括号出现)已经很清楚了——而且这个特定的问题只是被现有的关于有效使用 curly 的问题所包含大括号,表面上模拟了其他语言的代码块的想法。换句话说,被问到的问题(为什么大括号的一种特定语法使用似乎有效)应该关闭,因为它显然不是与该主题的许多其他线程分开的问题。只是我的意见。
标签: python curly-braces