擅长:python、mysql、java
<p>我建议你这样做:</p>
<pre><code>for filter in (field_a, field_b):
try:
obj = session.query(model).filter_by(filter).one()
except NoObjFound:
pass # or 'continue'
else:
update_the_obj(obj)
break
else:
insert_into_db(brand_new_obj)
</code></pre>
<p>这将确保正确的事情以正确的顺序发生,比嵌套的<code>try</code>块更具可读性,并且可以轻松地扩展以添加更多的<code>filter</code></p>