Python3如何避免链式调用及lambda表达式换行时添加末尾反斜杠
Python SQLAlchemy链式查询无需反斜杠折行的解决方案
共有两种常用的合规实现方式,均符合Python语法规范和PEP8编码要求:
- 方案1:用小括号包裹整个链式查询表达式
Python语法允许括号(小/中/大括号)范围内的内容直接换行,无需额外添加反斜杠,是该场景下最常用的写法:
def select(self) -> any: with dict_session_scope() as local_session: word = None try: word = ( local_session.query(Dict) .filter(Dict.demo_sentence == 0) .limit(5) .all() ) except SQLAlchemyError as e: local_session.rollback() logger.error("query dict word error", e) finally: local_session.close() return word
- 方案2:拆分链式调用为中间变量
如果需要实现动态查询(比如根据不同业务条件新增过滤规则、关联表逻辑),可以将每一步的查询对象单独赋值,逐步叠加:
def select(self) -> any: with dict_session_scope() as local_session: word = None try: query = local_session.query(Dict) # 此处可插入条件判断,动态新增查询规则 query = query.filter(Dict.demo_sentence == 0) query = query.limit(5) word = query.all() except SQLAlchemyError as e: local_session.rollback() logger.error("query dict word error", e) finally: local_session.close() return word
内容的提问来源于stack exchange,提问作者Dolphin
相关产品推荐
相关产品推荐

