使用字典代替switch

作者: 码农小杨 | 来源:发表于2017-11-14 22:50 被阅读0次

    日常工作中很少使用switch(一般都是if...elif...else)今天我们看一下如何使用字典代替switch:

    首先看switch代码:

    switch(day):
    {
        case 0:
            dayName = "Sunday";
            ...
            ...
            break;
        case 1:
            dayName = "Monday";
            break;
        case 2:
            dayName = "Tuesday";
            break;
        ...
        default:
            dayName = "Unknown";
            break;
    }
    

    注意:switch中可能存在代码块,我们尽量不要在switch中使用代码块,可以使用函数方法代替

    使用字典代替:

    day = 6
    
    def get_sunday():
        return 'Sunday'
    
    def get_monday():
        return 'Monday'
    
    def get_tuesday():
        return 'Tuesday'
    
    def get_default():
        return  'Unknown'
    
    switcher = {
        0 : get_sunday,
        1 : get_monday,
        2 : get_tuesday,
    
    }
    
    dayName = switcher.get(day, get_default)()
    

    以上就是使用字典映射代替switch,在上面的方法中,我们可以抒写更复杂的表达式

    相关文章

      网友评论

        本文标题:使用字典代替switch

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