【发布时间】:2010-12-03 13:28:51
【问题描述】:
根据this page 不能使用类似的代码
if variable = something():
#do something with variable, whose value is the result of something() and is true
所以如果我想拥有以下代码结构:
if a = something():
#do something with a
elif a = somethingelse():
#...
#5 more elifs
something() 函数是计算密集型的(我的意思是使用该函数然后再次执行它以将值分配给一个变量,以防第一个为真无法完成),我应该写什么Python?再添加 7 个变量而不是 1 个?
【问题讨论】:
-
我不明白你的问题。您是否试图避免编写与 if 语句分开的显式赋值语句?如果是这样,为什么?额外的语句有什么问题?
-
@S.Lott:我能想到一些用途,因为它是一个非常标准的 C 风格的编码习惯。它经常用在循环中,例如:while ((p = getNextPointer()) != NULL){//use p}。在许多情况下,额外的语句会使代码变得更加丑陋(我猜这就是为什么这种情况如此普遍)。
-
@S.Lott:在我的代码示例中,如果第二个函数返回真实答案,则最后 5 个函数不会被执行,与计算和分配所有内容相比,这是一个巨大的性能优势
标签: python