在 python 中顺序调用函数时有条件
Conditional when calling functions sequentially in python
我有四个函数,每个函数 returns 结果都是一个列表。我希望我依次调用的这些函数中的任何一个都带来一个列表,而不是查看其他函数。感谢您的帮助。
def main(self):
print(self.df_list)
funcs = [(Calculate.free_two_kdv(self.df_list)),(Calculate.free_kdv(self.df_list)),(Calculate.zero_kdv(Calculate.find_largest_duplicated_value,self.df_list)),(Calculate.zero_with_other_kdv(Calculate.find_largest_duplicated_value,self.df_list))]
for func in funcs:
try:
func()
except ValueError:
break
总之,我根本不希望它转到其他功能,以结果为准。
您正在立即调用函数并将结果存储在列表中。定义一个 new 函数来调用所需的函数。
def main(self):
print(self.df_list)
funcs = [lambda: Calculate.free_two_kdv(self.df_list),
lambda: Calculate.free_kdv(self.df_list),
lambda: Calculate.zero_kdv(Calculate.find_largest_duplicated_value, self.df_list),
lambda: Calculate.zero_with_other_kdv(Calculate.find_largest_duplicated_value, self.df_list)
]
for func in funcs:
try:
return func()
except ValueError:
pass
不清楚您是否希望 Calculate.find_largest_duplciated_value
作为第一个函数的 参数 ,或者您是否希望函数组合(即 f(g, x)
与 f(g(x))
。如果你要作文,那就是
funcs = [lambda: Calculate.free_two_kdv(self.df_list),
lambda: Calculate.free_kdv(self.df_list),
lambda: Calculate.zero_kdv(Calculate.find_largest_duplicated_value(self.df_list)),
lambda: Calculate.zero_with_other_kdv(Calculate.find_largest_duplicated_value(self.df_list))
]
假设 funcs return 中的函数是一个列表或 None:
for func in funcs:
if func(): break
for func in funcs:
flist = func()
if flist: break
第二个接收来自函数的 return 值以进行进一步的工作。 try..except 在这种情况下比简单的布尔条件具有更大的性能成本。
我有四个函数,每个函数 returns 结果都是一个列表。我希望我依次调用的这些函数中的任何一个都带来一个列表,而不是查看其他函数。感谢您的帮助。
def main(self):
print(self.df_list)
funcs = [(Calculate.free_two_kdv(self.df_list)),(Calculate.free_kdv(self.df_list)),(Calculate.zero_kdv(Calculate.find_largest_duplicated_value,self.df_list)),(Calculate.zero_with_other_kdv(Calculate.find_largest_duplicated_value,self.df_list))]
for func in funcs:
try:
func()
except ValueError:
break
总之,我根本不希望它转到其他功能,以结果为准。
您正在立即调用函数并将结果存储在列表中。定义一个 new 函数来调用所需的函数。
def main(self):
print(self.df_list)
funcs = [lambda: Calculate.free_two_kdv(self.df_list),
lambda: Calculate.free_kdv(self.df_list),
lambda: Calculate.zero_kdv(Calculate.find_largest_duplicated_value, self.df_list),
lambda: Calculate.zero_with_other_kdv(Calculate.find_largest_duplicated_value, self.df_list)
]
for func in funcs:
try:
return func()
except ValueError:
pass
不清楚您是否希望 Calculate.find_largest_duplciated_value
作为第一个函数的 参数 ,或者您是否希望函数组合(即 f(g, x)
与 f(g(x))
。如果你要作文,那就是
funcs = [lambda: Calculate.free_two_kdv(self.df_list),
lambda: Calculate.free_kdv(self.df_list),
lambda: Calculate.zero_kdv(Calculate.find_largest_duplicated_value(self.df_list)),
lambda: Calculate.zero_with_other_kdv(Calculate.find_largest_duplicated_value(self.df_list))
]
假设 funcs return 中的函数是一个列表或 None:
for func in funcs:
if func(): break
for func in funcs:
flist = func()
if flist: break
第二个接收来自函数的 return 值以进行进一步的工作。 try..except 在这种情况下比简单的布尔条件具有更大的性能成本。