如何优雅地检查对象/实例/变量是否存在,并在存在时同时将其赋值给变量?

29 浏览
0 Comments

如何优雅地检查对象/实例/变量是否存在,并在存在时同时将其赋值给变量?

我正在使用SQLAlchemy来填充数据库,经常需要在处理之前检查数据库中是否存在orm对象。这可能是一个不常见的问题,但我发现自己经常遇到这种模式:

my_object = session.query(SomeObject).filter(some_fiter).first()
if my_object: # 在大多数数据库中...
    # 好耶,它存在
    # 进行处理
else:
    # 它不存在。:-(
    my_object = SomeObject()
    # 进行处理

我正在梦想的是类似于以下的写法:

if my_object = session.query(someObject).blabla.first():
    # 如果my_object是None,这个作用域保持不变
    # 如果my_object不是None,我可以在这里使用my_object...

我知道,这个语法是错误的,但我想解释一下我在这个例子中的意思。任何等效的方式都会让我高兴。

是否有一种优雅的Python方法来处理这种模式?这个问题不仅仅针对SQLAlchemy,而是适用于每个等价的场景。

闭上眼睛,点击“发布你的问题”,等待聪明的人和热爱Python的人来猎杀我,因为我可能问了一些不恰当的问题;-)

0