gpt4 book ai didi

python - 如果 python 中另一个输入参数为 TRUE,是否有一种方法将函数的所有输入参数设置为 TRUE?

转载 作者:行者123 更新时间:2023-12-02 01:30:51 25 4
gpt4 key购买 nike

我有以下函数,用于运行分析。

如果我设置run_all_analysis = True,我想同时运行analysis_1和analysis_2。如果我在 run_all_analysisFalse 时设置 run_analysis_1 = True,我将只运行analysis_1(同样适用于analysis_2)

def save_locally(self,
run_all_analysis: bool = False,
run_analysis_1: bool = False,
run_analysis_2: bool = False):
if run_all_analysis:
run_analysis_1 = True
run_analysis_2 = True

if run_analysis_1 = True
# some function that saves analysis 1 to local folder

if run_analysis_2 = True
# some function that saves analysis 2 to local folder

问题是,我有很多不同的分析部分(大约 20 个),因此这个函数可能会变得非常长。如果run_all_analysisTRUE,是否有一种方法可以自动将所有输入参数设置为TRUE(而不是一一写出所有输入参数?) )?

最佳答案

如果你使用 kwargs 字典而不是一一定义 run_analysis_<n>论证,更简单:


def save_locally(self,
run_all_analysis: bool = False,
**kwargs):

if run_all_analysis:
for key in kwargs.keys():
kwargs[key] = True

if kwargs["run_analysis_1"] is True:
# some function that saves analysis 1 to local folder

if kwargs["run_analysis_2"] is True:
# some function that saves analysis 2 to local folder

如果我们想让事情变得更加紧凑,无论您必须执行多少次分析,都只需一个 if ,我们将创建一个列表,其中包含与每个分析标志关联的函数:


def save_locally(self,
run_all_analysis: bool = False,
**kwargs):

analysis_functions = [f1, f2, f3]

for n, function in enumerate(analysis_functions, start=1):
if run_all_analysis or kwargs.get(f"run_analysis_{n}", False) is True:
function() # Some function that saves analysis n to local folder.

关于python - 如果 python 中另一个输入参数为 TRUE,是否有一种方法将函数的所有输入参数设置为 TRUE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73350924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com