gpt4 book ai didi

python - Python 中更好的方法链接方式?

转载 作者:太空宇宙 更新时间:2023-11-03 12:17:38 25 4
gpt4 key购买 nike

所以我有很长的方法链,类似于:

return self.append_command("fbghasjfa").append_command(input_file_part).append_command(output_video_codec_part).append_command(output_resolution_part).append_command(output_video_bitrate_part).append_command(strict_part).append_command(output_audio_codec_part).append_command(output_number_of_audio_channels_part).append_command(output_audio_bitrate_part).append_command(output_file_part).__finalized

看起来很丑。有什么方法可以将每个方法放在单独的行上吗?喜欢:

return self.append_command("ffasfgas")
.append_command("fvasgvsd")
.append_command("hsdhsdhsd")
#etc

最佳答案

您可以使用反斜线续行:

return self.append_command("ffasfgas") \
.append_command("fvasgvsd") \
.append_command("hsdhsdhsd")

或括号:

return (self.append_command("ffasfgas")
.append_command("fvasgvsd")
.append_command("hsdhsdhsd"))

但最符合 Pythonic 的方法是将问题抽象为单个函数调用:

return self.append_commands("ffasfgas",
"fvasgvsd",
"hsdhsdhsd")

使用 reduce 是另一种选择,但不是特别优雅:

return reduce(MyClass.append_command, ["ffasfgas",
"fvasgvsd",
"hsdhsdhsd"], self)

甚至

return reduce(operator.methodcaller('append_command'),
["ffasfgas",
"fvasgvsd",
"hsdhsdhsd"], self)

关于python - Python 中更好的方法链接方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11265720/

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