2

我想知道你们认为分配变量值的最佳实践是什么。“懒惰”案例:

signal = -1
if (date.month != nextDate.month):
    signal = +1

或完全披露的案例:

if (date.month != nextDate.month):
    signal = +1
else:
    signal = -1

这两种情况的优点/缺点是什么?

4

3 回答 3

4

选择完全披露的案例。

  • 它清楚地表明signal是根据某些条件分配的(本质上是一个 switch 语句)
  • 这些条件以表格格式列出,非常易读
  • 单一分配比双重分配更不容易出错

能够快速识别正在发生的事情非常重要,而完全公开的案例则能做到这一点。请记住,您的代码将被阅读的次数多于编写的次数,因此请让未来的代码读者更容易阅读。

于 2013-09-16T18:14:22.473 回答
2

为什么不

signal = -1 if date.month == nextDate.month else 1

它简单易读。

于 2013-09-16T18:12:10.937 回答
0

在实践中,我倾向于使用第一个(“懒惰”)案例。它更简洁,并且很清楚它的作用。

我其实觉得函数式的版本更好(即python的if表达式),我会尝试切换到使用它。

于 2013-09-16T18:21:34.857 回答