【问题标题】:(Python) Coding style parentheses in ifs, loops, etc [closed](Python)ifs,循环等中的编码样式括号[关闭]
【发布时间】:2015-05-30 18:04:30
【问题描述】:

只是你个人的喜好,你更喜欢哪一个?

if filename in filesAndFoldersList:
    while a != "TEST":
        a = input("Input: ")

或者

if(filename in filesAndFoldersList):
    while(a != "TEST"):
        a = input("Input: ")

任何一个都可以,所以我认为这只是个人喜好。第二个更类似于 Java/C++。但你更喜欢哪一个?为什么?

【问题讨论】:

  • 我都不会。您正在编写 python 而不是 java 或 c++ 那么为什么要使用括号呢?如果 a 没有定义,你也会得到一个错误
  • 许多好的问题会根据专家的经验产生一定程度的意见,但这个问题的答案往往几乎完全基于意见,而不是事实、参考资料或特定专业知识。所以请避免这样的问题。

标签: python coding-style parentheses


【解决方案1】:

你应该永远在语句的关键字之后直接使用括号,就像你在第二种风格中所做的那样。通过使它们看起来像函数,您会混淆读者。您所做的只是将表达式组合在括号中,Python 会忽略这些,而您所做的只是删除关键字后的空格。

您也不能将样式与 all 复合语句一起使用;您不能将样式与 for 循环或包含 as <target> 子句的 with 语句一起使用。

Python Style Guide 根本没有提到第二种(带括号的)样式;它假设没有人会使用它。

请注意,这与using parentheses around long expressions 是分开的,在if 条件表达式周围使用(...),否则它太长而不能放在一行中。在这种情况下,您希望在开头的 (if 关键字之间放置一个空格:

if (
    this_is_one_thing and
    that_is_another_thing or
    (more_conditions and such_things)
):
    do_something()

【讨论】:

  • 你的意思是没有提到第二种风格?
  • @Tt:是的,你到处使用括号的风格。
  • 嘿,你是对的。括号不适用于 for 循环。不知道那个。猜猜你必须使用第一种风格。另外,我如何删除 SO 中的帖子?
  • @Tt:C 语法语言只是使用括号作为分隔符。否则,如果语句不是块语句,则在某些情况下,它无法确定表达式可能在哪里结束。如果 blockrequired,则它们已过时。还有很多其他语言也不需要这个,例如整个 Pascal 组(Pascal、Modula、Oberon、Ada、Dephi 等)。那是因为它们更能区分表达式和语句。
  • @JaideepShekhar:该部分处理必须跨越多行的长表达式的解决方案。我可以看到我在这个答案中的陈述听起来很收缩,所以我会看看我可以做些什么来编辑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-30
  • 2014-02-10
  • 2013-03-25
  • 2013-10-04
  • 2016-10-09
  • 2013-07-18
  • 2018-12-03
相关资源
最近更新 更多