2024-04-26 23:20:44 发布
网友
我经常在这里看到某人的代码和看起来像“一行”的代码,这是一个以传统“if”语句或“for”循环的标准方式执行的单行语句。
我到处搜索,找不到你能表演的那种?有人能给我建议,最好举几个例子吗?
例如,我可以在一行中这样做吗:
example = "example" if "exam" in example: print "yes!"
或:
for a in someList: list.append(splitColon.split(a))
我发现在大多数情况下,在一行上做块子句是个坏主意。
它将再次作为一个通用性,降低代码形式的质量。高质量的代码形式是python的一个关键语言特性。
在某些情况下,python会提供在一行上完成某些事情的方法,而这些方法肯定更像python。比如尼克D在清单理解中提到的:
newlist = [splitColon.split(a) for a in someList]
尽管除非您需要一个可重用的列表,否则您可能需要考虑改用生成器
listgen = (splitColon.split(a) for a in someList)
请注意,这两者之间最大的区别是,您不能在生成器上重复,但它的使用效率更高。
在现代版本的python中还有一个内置的三元运算符,它允许您执行如下操作
string_to_print = "yes!" if "exam" in "example" else "" print string_to_print
或者
iterator = max_value if iterator > max_value else iterator
有些人可能会发现这些代码比类似的if (condition):块更可读和可用。
if (condition):
归根结底,这是关于代码风格和你所在团队的标准。这是最重要的,但一般来说,我建议不要使用单行块,因为python中的代码形式非常重要。
好吧
if "exam" in "example": print "yes!"
这是进步吗?否。您甚至可以用分号分隔if子句的主体来添加更多语句。不过,我建议不要这样做。
if
更一般地说,以下所有内容在语法上都是有效的:
if condition: do_something() if condition: do_something() if condition: do_something() do_something_else() if condition: do_something(); do_something_else()
……等等
我发现在大多数情况下,在一行上做块子句是个坏主意。
它将再次作为一个通用性,降低代码形式的质量。高质量的代码形式是python的一个关键语言特性。
在某些情况下,python会提供在一行上完成某些事情的方法,而这些方法肯定更像python。比如尼克D在清单理解中提到的:
尽管除非您需要一个可重用的列表,否则您可能需要考虑改用生成器
请注意,这两者之间最大的区别是,您不能在生成器上重复,但它的使用效率更高。
在现代版本的python中还有一个内置的三元运算符,它允许您执行如下操作
或者
有些人可能会发现这些代码比类似的
if (condition):
块更可读和可用。归根结底,这是关于代码风格和你所在团队的标准。这是最重要的,但一般来说,我建议不要使用单行块,因为python中的代码形式非常重要。
好吧
这是进步吗?否。您甚至可以用分号分隔
if
子句的主体来添加更多语句。不过,我建议不要这样做。更一般地说,以下所有内容在语法上都是有效的:
……等等
相关问题 更多 >
编程相关推荐