我有一个函数可以打开一个文本文件,解析一堆数据并在一个数组中返回数值结果。现在,我还希望此函数即时执行一些可选计算,并在需要时返回这些值。
对于单个标志,这是相当干净的,例如:
def read_data(file_name, calc_a=False):
# do normal parsing and store data in 'xyz'
if calc_a:
# calc some other stuff and store in 'a'
return xyz, a
else:
return xyz
现在,如果我想拥有多个可选标志,事情很快就会变得混乱,例如:
def read_data(file_name, calc_a=False, calc_b=False):
# do normal parsing and store data in 'xyz'
if calc_a:
# calc some other stuff and store in 'a'
if calc_b:
# calc some other stuff and store in 'b'
if calc_a and calc_b:
return xyz, a, b
elif calc_a:
return xyz, a
elif calc_b:
return xyz, b
else:
return xyz
有没有更清洁的方法来处理这种情况?