【发布时间】:2019-09-21 05:08:43
【问题描述】:
我正在参加在线 Python 课程。其中一项练习包含:
[print(x, 'has type', type(eval(x))) for x in ['np_vals', 'np_vals_log10', 'df', 'df_log10']]
对我来说,这条长语句的可读性不如标准循环,例如,
for x in ['np_vals', 'np_vals_log10', 'df', 'df_log10'] :
print(x, 'has type', type(eval(x)))
有没有针对这种事情的推荐做法?
我在 bash 中编写长行以利用管道和替换,这样我就可以使用 vi 输入模式拼凑和编辑整个行——但我这样做是知道为了在脚本中的可读性会以不同的方式编写.
【问题讨论】:
-
永远不要仅仅为了它的副作用而写一个列表推导——如果你不使用你创建的列表,那你就错了。任何课程中包含的代码与没有大的、fat、“这个代码很糟糕”的免责声明一样可怕,都应该立即放弃。
-
Python 之禅说:“可读性很重要。”。如果您认为它更具可读性,您也可以认为它更好。
-
@Aran-Fey:嗯,我还没有列出理解,也不想偏离课程太远(我知道当我过于分散而不是加强时会发生什么一次一点)。但我发现这门课程对于最终介绍时间序列很有价值。它是由相当大的提供商提供的大量课程的一部分,其中有许多其他好的课程。所以我不想放弃它。
-
除了列表理解之外,我发现this advice 每 physical 行不超过 79 个字符,但与语句的长度无关。虽然我猜如果作者把这句话分成两行,那会更好。
-
@Klaus D:这不仅仅是线路的长度。事实上,使用了一种代码模式,它启用了长语句,但没有增加任何价值。在这种情况下,为什么还要使用“向后”循环模式?因为一个可以?展示 Python 功能?我不认为这是展示功能的最佳方式。令人费解。
标签: python readability