gpt4 book ai didi

Python3如何尝试多个函数来查找和赋值?

转载 作者:太空宇宙 更新时间:2023-11-04 00:50:18 25 4
gpt4 key购买 nike

目前我的代码是这样的:

img = find_image_in_feed(feed)
if img:
e.image = img
if not e.image:
img = find_image_on_site(site)
if img:
e.image = img

它可以工作,但看起来令人困惑且难以扩展。将来可能会有多个 find_image(...) 函数。在这种情况下我应该使用一些“设计模式”吗?我的第二个想法对我来说也不干净,因为同时分配和检查值。

if img = find_image_in_feed(feed):
e.image = img
elif img = find_image_on_site(site):
e.image = img

我希望我的代码尽可能易于阅读,但我感觉我遗漏了一些明显的东西。

最佳答案

您可以使用 ,它的工作方式类似于 null coalescing operator :

e.image = find_image_in_feed(feed) or find_image_on_site(site)

上面,e.image 被设置为 find_image_in_feed(feed) 如果它返回一些评估为 true 的东西,否则它会返回 的返回值find_image_on_site(站点)

>>> value = 5 or 6
>>> print(value)
5
>>> value = [] or [1, 2, 3]
>>> print(value)
[1, 2, 3]

在 Python 中,or 是一个短路运算符,因此它仅在 find_image_in_feed(feed) 为 false 时计算 find_image_on_site(site) .

--

如果当两个调用都返回 None 时,您没有将 e.image 设置为 None:

e.image = find_image_in_feed(feed) or find_image_on_site(site) or e.image

关于Python3如何尝试多个函数来查找和赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37378995/

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