Python 为什么在';和'';或';,等
这在Python中不起作用有什么原因吗Python 为什么在';和'';或';,等,python,Python,这在Python中不起作用有什么原因吗 if 1 != 1 or 2 != 2: print 'Something is wrong...' 只有在括号、方括号或大括号打开的情况下,Python中才会出现隐式行继续。在你的条件周围加上括号,它就会起作用。也许这可以防止语法歧义,但我觉得这种行为符合“简单优于复杂”的精神。换句话说,“除非你有充分的理由,否则表达式为什么要跨越多行?”。如果您有一个很好的理由,我们将提供一些语法工具来解决这个问题 [编辑] 我又读了一些书,其中有一些有
if 1 != 1 or
2 != 2:
print 'Something is wrong...'
只有在括号、方括号或大括号打开的情况下,Python中才会出现隐式行继续。在你的条件周围加上括号,它就会起作用。也许这可以防止语法歧义,但我觉得这种行为符合“简单优于复杂”的精神。换句话说,“除非你有充分的理由,否则表达式为什么要跨越多行?”。如果您有一个很好的理由,我们将提供一些语法工具来解决这个问题 [编辑] 我又读了一些书,其中有一些有趣的参考资料:
- 语句的词汇定义是,逻辑行以。添加隐式延续的每种情况都成为例外情况
- 对于Python3,建议删除斜杠(
)延续,但由于缺乏支持而被拒绝。\
- 邮件列表中的注释提醒我们,插入式继续出现是因为换行符不结束语句,而括号保持不平衡
- 在同一线程中,Guido反对更改,因为以下错误会被隐藏:
我的最后一点是,斜杠(或开括号)提醒语句在下一行继续。根据缩进的不同,可能会将continuation误认为一个单独的语句(我认为其他语句也涉及到了这一点)。因为“显式优于隐式”;未标记的行继续符会使代码的读取器感到不适(尤其是在具有语法意义上的空白的语言中),代码的读取频率要比编写频率高得多。但是,为什么他们不选择对
和和以及或进行无括号的隐式行继续符呢?“我不认为这样做有什么含糊不清的地方吗?@kindall:我不想说,但你完全没有抓住我问题的重点。我问的是原因,而不是修复。也许他们只是觉得不值得实施。答案就在你的问题中导入此
并读取单词implicit
。这就是实际原因。对于“\”或大括号、括号或圆括号之类的匹配对,很明显这行没有结束。我认为这就是它的原因,其他延续类型没有太多问题的可能性。除了关于python“阻止”这种行为的轶事,我发现了这种情况的一些功能性原因;谢谢!:)
x = y+ # Used to be y+1, the 1 got dropped
f(x)