优雅的方式来过滤无或非无

Tho*_*isé 4 python sqlalchemy

以下 SQLAlchemy 代码可以工作,但看起来不符合 Python 风格:

if has_died: # has_died: True or False
  query = query.filter(User.died_at != None)
else:
  query = query.filter(User.died_at == None)
Run Code Online (Sandbox Code Playgroud)

添加过滤器的更优雅的方式是什么?

Cyp*_*ase 5

好吧,你可以这样做:

query = query.filter((User.died_at != None) if has_died else (User.died_at == None))
Run Code Online (Sandbox Code Playgroud)

但读起来有点困难。我认为你的做法很好。