作为一种语言,由于没有结束语句,Python是否受限制?

nic*_*ckb 6 python coding-style

由于Python使用翼片间隔,以指示范围(并且同样地,不具有end}符号),是否限制的语言以任何方式从具有特定功能?

注意:我不是在谈论编码风格的个人偏好,我是在谈论真正的语言限制,因为没有end声明的直接结果?

例如,它似乎通过后直接从圭有些不具有终止由于Python中缺乏多线兰巴年代end/ }符号?

如果是这样,那么由于这种语言设计决定使用缩进,还有哪些其他Python的limations?


更新:

请注意这个问题不是关于Lambda和技术上的问题,甚至不是Python本身.它是关于编程语言设计......当编程语言设计为具有缩进(而不是结束语句)时,编程语言具有哪些限制表示块范围.

glg*_*lgl 12

不缺少end/ }:结尾由前一个深度的"dedent"表示.所以没有任何限制.

例:

x = 123
while x > 10:
    if x % 21:
        print("x")
    print("y")
print("z")
Run Code Online (Sandbox Code Playgroud)

"开始"对应于压痕水平的增加(之后while,之后if).

"结束"对应于压痕水平的降低(在各自的print()s之后).

如果省略print("y"),则对最高级别进行"删除",这对应于具有两个连续的"结束".

  • 限制不是语言限制,而是 lambda 限制。 (3认同)
  • @PaoloMoretti扮演魔鬼的拥护者 - 我认为"不能包含任何关键词"并不是正确的措辞......`test = lambda L:3如果L%2且L> 15 == 0则7` ... (2认同)
  • @glgl我认为重点是,由于Python使用物理缩进来确定语句的分组(而不是大括号或开始/结束关键字),所以基本上不可能找到表达多行的Pythonic方式(即多语句)匿名函数. (2认同)