请教一个 Python 在逻辑判断上更优雅的写法

2019-05-31 14:40:38 +08:00
 coolair

在写 SQLAlchemy 查询的时候:

if x == 'a':
    query = db.session.query(a, b, c)
elif x == 'b':
    query = db.session.query(d, e, f)
else:
    print('error')

if y == 'p':
    query = query.join(P)
else y == 'q':
    query = query.join(Q)
else:
    print('error')

if x == 'a':
    query = query.group_by(a)
elif x == 'b':
    query = query.group_by(d)
else:
    print('error')

有更好的写法吗?

1103 次点击
所在节点    问与答
5 条回复
renmu123
2019-05-31 15:05:57 +08:00
用 dict 做映射
hjq98765
2019-05-31 15:33:32 +08:00
都是等号判断,dict 足够了
coolair
2019-05-31 17:35:06 +08:00
@hjq98765
@renmu123
这种连接式的,dict 如何写,另外,我觉得问题是 x 判断了两次,这个 dict 能解决吗?
renmu123
2019-05-31 18:52:34 +08:00
dict1={
'a': [a, b, c]
'b': [d, e, f]
}
value = dict1[x]
query = db.session.query(value[0], value[1], value[2])

感觉这样也不是很优雅
sdtfll
2019-06-01 14:34:39 +08:00
挺好的啊,朴实点,任何人都看得懂,不绕脑子,多几个字符无所谓,

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/569467

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX