我需要检查多个变量,并对它们调用相同的函数
if isinstance(VarA,complex):
VarA=SomeFunction(VarA)
if isinstance(VarB,complex):
VarB=SomeFunction(VarB)
if isinstance(VarC,complex):
VarC=SomeFunction(VarC)
是否可以以更短/更易读的方式编写此代码?
答案 0 :(得分:4)
您可以这样做:
a, b, c = (f(x) if isinstance(x, complex) else x for x in [a, b, c])
当变量多于三个时,这变得很丑陋,因此,如果您发现自己需要大量用于执行相同计算的变量,则应考虑使用列表和循环:
List = [1, 2, 3 + 1j, 4, 5 - 2j]
processed = [f(x) if isinstance(x, complex) else x for x in List]
答案 1 :(得分:2)
一种解决方案是使用字典来保存可变数量的变量。
然后迭代字典并在满足条件的情况下修改值。
vars = {'A': VarA, 'B': VarB, 'C': VarC}
for k, v in vars.items():
if isinstance(v, complex):
vars[k] = SomeFunction(vars[k])
答案 2 :(得分:0)
您可以这样做
varA,varB,varC = (SomeFunction(var) if isinstance(var,complex) else var for var in [varA,varB,varC])