美文网首页
Python没有switch-case?

Python没有switch-case?

作者: 刘志宇航员 | 来源:发表于2018-04-26 09:31 被阅读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!

    相关文章

      网友评论

          本文标题:Python没有switch-case?

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