V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
coolair
V2EX  ›  问与答

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

  •  
  •   coolair · May 31, 2019 · 1467 views
    This topic created in 2533 days ago, the information mentioned may be changed or developed.

    在写 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')
    

    有更好的写法吗?

    5 replies    2019-06-01 14:34:39 +08:00
    renmu123
        1
    renmu123  
       May 31, 2019 via Android
    用 dict 做映射
    hjq98765
        2
    hjq98765  
       May 31, 2019
    都是等号判断,dict 足够了
    coolair
        3
    coolair  
    OP
       May 31, 2019
    @hjq98765
    @renmu123
    这种连接式的,dict 如何写,另外,我觉得问题是 x 判断了两次,这个 dict 能解决吗?
    renmu123
        4
    renmu123  
       May 31, 2019 via Android
    dict1={
    'a': [a, b, c]
    'b': [d, e, f]
    }
    value = dict1[x]
    query = db.session.query(value[0], value[1], value[2])

    感觉这样也不是很优雅
    sdtfll
        5
    sdtfll  
       Jun 1, 2019 via Android
    挺好的啊,朴实点,任何人都看得懂,不绕脑子,多几个字符无所谓,
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1069 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 22:59 · PVG 06:59 · LAX 15:59 · JFK 18:59
    ♥ Do have faith in what you're doing.