撰写此声明的更多pythonic方法是什么?
if soup.find(title="Email"):
profile['email'] = soup.find(title="Email").a.string
我想避免的是重复soup.find(title="Email")
答案 0 :(得分:3)
我不知道这是否更像是pythonic。我用我使用的大多数语言来做这件事。 在我的头顶,这样的事情应该避免重复。
soupByEmail = soup.find(title="Email")
if soupByEmail:
profile['email'] = soupByEmail.a.string
答案 1 :(得分:0)
这不是pythonic的问题,更多的是编码风格。作为一种优雅的替代方案,您使用EAFP principle(比请求更容易请求宽恕)并使用try-except
表达式包裹您的代码段:
try:
profile['email'] = soup.find(title="Email").a.string
except Exception as exp:
# do what you want with exp
此方法的另一个优点是您可以在异常块中记录问题,供以后使用,或者在stdout中打印。