python - 定义特定于条件的变量是好的做法吗

标签 python algorithm variables conditional-statements naming-conventions

假设我有这样一个程序(python不过是一道算法题):

if boolean == true:
    commonvar = process1()
    var = "foo"
else:
    commonvar = process2()
    var = "bar"
result = intermediate_process (commonvar)
if boolean == true:
     print ("training of {} :{}".format (var, result)
else :
     print ("testing of {} :{}".format (var, result)

在 say 中修改 var 是否正确/良好的设计实践:

if boolean == true:
    commonvar = process1()
    var_true = "foo"
else:
    commonvar = process2()
    var_false = "bar"
result = intermediate_process (commonvar)
if boolean == true:
     print ("training of {} :{}".format (var_true, result)
else :
     print ("testing of {} :{}".format (var_false, result)

我想说这样做的一个好处是你可以很容易地看到算法中的哪条“路径”属于 var,并且新变量名称可能更相关(特别是在将条件添加到现有算法时,原始变量名称“var”可能有意义并且与算法中的原始路径相关,并且可能与新算法中的相同路径相关,但对于辅助添加的路径可能没有意义/相关。
在错误的一端,我会说它可能更容易产生错误,因为如果您引用一个尚未定义的名称,编译器或程序在执行期间将抛出异常。
也就是说,这也可以被视为一个优势,因为它更容易将路径与变量匹配。

你怎么看?事实上,命名约定通常被定义为与良好的设计相结合,但我认为问题远不止于此,所以它不是专门基于 python 的(我使用它只是因为它对于任何了解编程/英语的人来说都是可读的)。

最佳答案

关于:

print(f"training of foo :{intermediate_process(process1())}" if boolean else
      f"testing of bar :{intermediate_process(process2())}")

我认为这要清楚得多,并且不需要您记住代码中前面定义的奇怪变量。我明白,在更高级的情况下,你不一定能将它简化为这么简单的一行,但没有具体的例子,很难讨论什么是“最佳实践”。我想不出有什么地方可以立即明确占位符的名称(例如中间总和),或者由于添加太多变量而实际上失去了清晰度。

关于python - 定义特定于条件的变量是好的做法吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43778550/

相关文章:

java - Android开发中如何为常量变量存储单独的常量类

python - 删除 pandas 中值不增加的列

python - 欧拉挑战12、这段python代码为什么会失败?

python - 从 URL 使用 Python 下载会出现 No Host Supplied 错误

algorithm - Bellman-Ford 算法轨迹

python - 在 Python 3.x 中生成位排列的最快方法

python - 编写 python 代码来计算几何级数

algorithm - 如何从给定的产品及其属性中找到最低成本?

从不同 View 访问iphone全局变量

linux - 是否可以检测本地 IP 地址并将其作为变量存储在 linux 脚本中