Python没有switch-case?

这几天在写一个p2p文件系统的project,其中在写客户端代码的时候,需要对客户的不同操作执行不同的方法。客户端的操作有接近10种,如何保证我的程序能快速有效的反应用户的指令呢?我一下子就想到了利用switch-case结构来实现!但是。。。问题来了,python竟然没有这种结构,伤脑筋。那么,如何利用python现有的语法构造出同样有效的结构呢?

经过思考,我觉得利用字典来实现!源码如下!

```

        command_dict = {'connect':self.connect_server,

                        'add':self.add_rfc,

                        'query':self.query_active,

                        'lookup':self.lookup_rfc,

                        'list':self.list_all,

                        'download':self.download,

                        'quit':self.quit}

```

虽然在python中没有函数指针,但是我们在获取字典中元素时,相当于获取了函数的指针.

在我的project里,我用setdefault来handle用户的异常操作,所以这种结构灰常有效。下面是我处理用户请求的代码

```

while True:

            request_method = raw_input('Enter your request: ')

            command_dict.setdefault(request_method, self.invalid_request)()

```

哈哈,大家学到了吗!

rua!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • python没有switch case语句,不过如果你实在想要的话,可以用if else来实现。另外也可以用字典来...
    bigtom阅读 1,012评论 1 0
  • Python 面向对象Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对...
    顺毛阅读 4,238评论 4 16
  • (一)、启动服务器 (二)、创建数据库表 或 更改数据库表或字段 Django 1.7.1及以上 用以下命令 1....
    夏天夏星阅读 5,704评论 0 17
  • 唯有深切理解“死”的必然,才能真正懂得和珍视“生”的欢欣。 ...
    余小鱼MsYu阅读 4,125评论 18 20
  • 不知道你们有没有认识十多年的人,虽然大家并没有甜得发腻,但也没有过分疏远,在自己心里还是会把ta划分到亲人的名单,...
    力文lw阅读 196评论 0 0