Python switch-case语句的实现 -- 字典模拟实现

本文介绍了一个用于打印ASRU系统状态的C语言函数,并提供了相应的Python语言实现。该函数通过状态码来确定系统的运行状况,如正常运行、降级服务等,并使用国际化字符串进行输出。
static void
print_asru_status(int status, char *label)
{
    char *msg = NULL;

    switch (status) {
    case 0:
        msg = dgettext("FMD", "ok and in service");
        break;
    case FM_SUSPECT_DEGRADED:
        msg = dgettext("FMD", "service degraded, "
            "but associated components no longer faulty");
        break;
    case FM_SUSPECT_FAULTY | FM_SUSPECT_DEGRADED:
        msg = dgettext("FMD", "faulted but still "
            "providing degraded service");
        break;
    case FM_SUSPECT_FAULTY:
        msg = dgettext("FMD", "faulted but still in service");
        break;
    case FM_SUSPECT_UNUSABLE:
        msg = dgettext("FMD", "out of service, "
            "but associated components no longer faulty");
        break;
    case FM_SUSPECT_FAULTY | FM_SUSPECT_UNUSABLE:
        msg = dgettext("FMD", "faulted and taken out of service");
        break;
    default:
        break;
    }
    if (msg) {
        (void) printf("%s     %s\n", label, msg);
    }
}

以上代码是我做项目中遇到的一段代码,要求用Python语言实现,实现代码如下所示:

def print_asru_status(status, label):
    dic = {0:"ok and in service",
        FM_SUSPECT_DEGRADED:"service degraded, but associated components no longer faulty",
        FM_SUSPECT_FAULTY | FM_SUSPECT_DEGRADED:"service degraded, but associated components no longer faulty",
        FM_SUSPECT_FAULTY:"faulted but still in service",
        FM_SUSPECT_UNUSABLE:"out of service, but associated components no longer faulty",
        FM_SUSPECT_FAULTY | FM_SUSPECT_UNUSABLE:"faulted and taken out of service"}
    if status not in dic:
        msg = ""
    else:
        msg = dic[status]
    if msg :
        print(label,"     ", msg)

 

学习文章:http://www.cnblogs.com/russellluo/p/3299725.html

转载于:https://www.cnblogs.com/fendou-999/p/3534839.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值