gpt4 book ai didi

python - 替代连续的 Try/Except block

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

我是 Python 的新手,所以我想知道是否有更简洁的替代方法来运行大量连续的 try/except block ,如下所示?

try:
project_type = body.find_element_by_xpath('./div[contains(@class, "discoverableCard-type")]').text
except Exception:
project_type = 'Error'
try:
title = body.find_element_by_xpath('./div[contains(@class, "discoverableCard-title")]').text
except Exception:
title = 'Error'
try:
description = body.find_element_by_xpath('./div[contains(@class, "discoverableCard-description")]').text
except Exception:
description = 'Error'
try:
category = body.find_element_by_xpath('./div[contains(@class, "discoverableCard-category")]').text
except Exception:
category = 'Error'
...

正如 this thread 中所建议的那样或 this thread,我想我可以创建变量名称和查询列表,然后使用 for 循环为每个容器项构建一个字典,但真的没有其他可能更具可读性的替代方法吗?

最佳答案

你的代码有很多困惑的原因是因为你有重复的代码。您连续四次表达相同的想法(查找一个值,如果失败则设置默认值),这自然意味着您也必须编写四次相同的支持代码。

循环是修复重复代码的好方法 - 因此使用名称列表来查找和创建值字典是这里的完美解决方案。这使您可以一次编写逻辑,然后多次使用它。

(另外:您的代码重复导致了错误!前两个 try-except block 将 'Error' 值分配给 description 而不是适当的变量。重复代码可以咬人!)

关于python - 替代连续的 Try/Except block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51072895/

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