繁体   English   中英

在 elif 语句之前分配变量

[英]assigning variable prior to elif statement

这可能是非常基本的,但我没有任何线索

我的代码是这样的:

for tickers in ticklist:
  if function_1(x,y) is True:
     do task1
  elif function_2(x,y) is True:
     do task1
  elif function_3(x,y) > a and function_3(x,y) < b:
     do task1
  else:
     do task2

我知道这段代码相当于拥有:

for tickers in ticklist:
  if function_1(x,y) is True or function_2(x,y) is True or function_3(x,y) > a and 
  function_3(x,y) < b:
     do task1
  else:
     do task2

分成多行的原因是为了防止不必要的条件检查并节省循环时间,因为这里的每个 function 代表一个 api 调用(这需要相当多的时间)。 所以,我的目标是在一个条件为真时结束循环。 但是,在第三种情况下,相同的 function 被调用两次(这意味着调用 api 两次)。

...
elif function_3(x,y) > a and function_3(x,y) < b:
     do task1

有没有办法在进入 elif 之前将 function 的返回值分配给变量,以便可以使用分配的变量检查条件,而不是两次转到 function。

就像是:

...
elif var = function_3(x,y) 
    if var> a and var < b:
     do task1

我认为是这样的:

if func_1(x,y):
  Task 1
elif func_2(x,y):
  Task 1
else:
  n = func_3(x,y)
  if n>a and n<b:
    Task 1
  else:
    Task 2

会为你工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM