gpt4 book ai didi

python - 如何在不在 Python 中复制粘贴其余部分的情况下获取函数的多个版本

转载 作者:行者123 更新时间:2023-11-28 20:30:11 25 4
gpt4 key购买 nike

我有一个带有 while 循环的函数。在开始该功能之前,我希望能够决定是每次循环遍历图像时都导出图像,还是只想显示它,两者都做或都不做。

我不想在循环中加入一个“if”,每次我通过它时都会被问到,所以我想我只写该函数的 4 个不同版本(loop、loop_show、loop_export、loop_show_export)怎么样? .但我认为一定有一种方法可以不复制粘贴函数的其余部分。

有办法吗?或者是否有更好的装饰器或其他方式?

def main():
...
while True:
...
####### code that I need to dis-/enable #######
for image in images:
video_in.write(image) # preparation for export
Show.show_win('in', image) # show input
###############################################
...

最佳答案

如果我没理解错的话,这就是你需要的:

def main(show=False, export=False):
...
while True:
...
####### code that I need to dis-/enable #######
for image in images:
if export:
video_in.write(image) # preparation for export
if show:
Show.show_win('in', image) # show input
###############################################
...

当以 main() 调用函数时,showexport 参数默认为 False,因此循环中的两个if都没有执行。
如果您调用 main(show=True),则执行 if show:
如果您调用 main(export=True),则执行 if export:
如果您调用 main(show=True, export=True) 两个 if 都会执行。

正如人们在评论中所说,检查一个 bool 值几乎不需要时间,代码可读性强,几乎相同的函数中没有重复的行。无需寻找更详细的解决方案。

关于python - 如何在不在 Python 中复制粘贴其余部分的情况下获取函数的多个版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58321645/

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