2

如果我们在 python 函数中使用许多返回位置会有什么害处吗?就像假设如果我想返回一个函数,如果值不是 3 并且值不是 None(只是一个场景)。所以它可以通过很多方式来完成,比如

def return_value(value):
 if value != 3:
  return None
 if value is not None:
  return None
 if value != 'string':
  return None

或者可以这样做:

def return_value(value):
 if value != 3 or value is not None or value !='string':
  return None

同样,我只想使用第二种编写代码的方式,但只是出于疑问,我要问有很多回报会以某种方式影响函数的性能吗?

4

2 回答 2

5

return不,拥有许多s并没有什么坏处。

也就是说,在这种情况下,我肯定会选择第二个版本。第一个更难阅读,也更慢(尽管在没有基准的情况下优化速度总是为时过早)。降低它的不是 many returns,而是 many ifs。

于 2013-04-04T05:40:13.310 回答
4

您在上面使用的这似乎是一个非常有趣的场景,但从概念上讲,函数中的多个返回点没有问题。

在实际场景中,您的测试条件很可能在逻辑上相似,并且将它们组合在一起,如您的第二个示例中那样,将具有良好的逻辑意义并使您的代码易于阅读。

干杯

于 2013-04-04T05:45:34.047 回答