Python没有switch-case?

2018-04-26  本文已影响0人  刘志宇航员

这几天在写一个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!

上一篇下一篇

猜你喜欢

热点阅读