美文网首页
匿名函数实现switch...case...效果

匿名函数实现switch...case...效果

作者: 氪金浣熊 | 来源:发表于2018-09-10 23:27 被阅读0次

    本人目前Python学习中……
    今天遇到的问题是:
    如何把数据库中查询出的int结果转换成对应的可理解的string
    (有字典,1对1对应的)
    想到的办法是在Python中构建类似switch case的语句,用到了匿名函数。这里有个参数的多余的,没想好怎么处理,暂时保留。

    def int2str(i, x): # 内部函数,改变【状态】的表现形式
            return {
                0: lambda x: '未出发',
                1: lambda x: '已出发未到访',
                2: lambda x: '已到访未交定',
                3: lambda x: '已交定未首付',
                4: lambda x: '已首付已成交'}[i](x)
    

    完整代码如下,上述的函数作为一个内部函数使用

    @app.route('/b/book/<int:bookid>')
    def get_buyer_booking_status_by_bookid(bookid):
        sql1 = 'SELECT status '
        sql2 = 'FROM bookings WHERE id = %d' % bookid
        sql3 = ' '
        sql4 = ' LIMIT 1'
        sql = '%s %s %s %s;' % (sql1, sql2, sql3, sql4)
        cur = g.db.execute(sql)
    
        def int2str(i, x): # 内部函数,改变【状态】的表现形式
            return {
                0: lambda x: '未出发',
                1: lambda x: '已出发未到访',
                2: lambda x: '已到访未交定',
                3: lambda x: '已交定未首付',
                4: lambda x: '已首付已成交'}[i](x)
        dict_status = {'status': int2str(cur.fetchone()[0]*1,0)}
        return jsonify(dict_status)
    

    以上测试通过。
    via Python/Flask/Sqlite3

    相关文章

      网友评论

          本文标题:匿名函数实现switch...case...效果

          本文链接:https://www.haomeiwen.com/subject/epzegftx.html