gpt4 book ai didi

Python dict to select 函数运行所有这些

转载 作者:太空宇宙 更新时间:2023-11-04 09:44:38 26 4
gpt4 key购买 nike

所以我尝试通过使用字典来选择要运行的函数来减少嵌套 if。在测试中调用 execute 时,我通常使用“execute("BACKUP","/home/src","/home/dest")"

但出于某种原因,它会同时运行 BACKUP 选项两次。我究竟做错了什么?我正在使用 Python3

    def execute(jobtype, src, dst):
if jobtype == "FULL":
_o_src = fs.Index(src)
fs.MakeFolders(_o_src.GetFolders(), dst)
fs.MakeFiles(src, dst, _o_src.GetFiles())
if jobtype == "INCREMENTAL":
print("DO INCREMENTAL BACKUP " + src + " TO " + dst)
# Do the things
options = {
"BACKUP": execute(self.jobtype, self.src, self.dst),
"RESTORE": execute(self.jobtype, self.dst, self.src),
}
options[jobtype]()

最佳答案

您没有将execute 函数存储在您的options 字典中。您正在存储调用该函数的结果。而且由于传入不同参数的方式都是相同的函数,因此您实际上不需要该函数作为字典中的值。你需要参数。将最后四行更改为:

options = {
"BACKUP": [self.jobtype, self.src, self.dst],
"RESTORE": [self.jobtype, self.dst, self.src],
}
execute(*options[jobtype])

关于Python dict to select 函数运行所有这些,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50282387/

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