您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> 其他语言 >> (python)多层嵌套的if判断需要优化么?对性能影响大么?

(python)多层嵌套的if判断需要优化么?对性能影响大么?

来源:网络整理     时间:2016/11/4 1:21:46     关键词:

关于网友提出的“ (python)多层嵌套的if判断需要优化么?对性能影响大么?”问题疑问,本网通过在网上对“ (python)多层嵌套的if判断需要优化么?对性能影响大么?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: (python)多层嵌套的if判断需要优化么?对性能影响大么?
描述:

class ThreadUrl(threading.Thread):
    def __init__(self, main_queue, source1_queue, source2_queue, source3_queue, source4_queue):
        threading.Thread.__init__(self)
        self.main_queue = main_queue
        self.source1_queue = source1_queue
        self.source2_queue = source2_queue
        self.source3_queue = source3_queue
        self.source4_queue = source4_queue

    def run(self):
        while True:
            # 从任务队列里取出任务
            sql_dict = self.main_queue.get()

            sql = sql_dict.get('a')
            if sql is not None:
                self.source1_queue.put(sql)
                self.main_queue.task_done()
            else:
                sql = sql_dict.get('b')
                if sql is not None:
                    self.source2_queue.put(sql)
                    self.main_queue.task_done()
                else:
                    sql = sql_dict.get('c')
                    if sql is not None:
                        self.source3_queue.put(sql)
                        self.main_queue.task_done()
                    else:
                        sql = sql_dict.get('d')
                        if sql is not None:
                            self.source4_queue.put(sql)
                            self.main_queue.task_done()

类似这种形式。


解决方案1:

首先考虑可读性可维护性

最后才考虑性能

解决方案2:

有点啰嗦,try里写正常代码,except里处理sql异常

解决方案3:

主要是丑呀,如此不优雅的代码。
else 全部可以用它 continue 代替。

至于性能,你确定你要用 threading.Thread 这种线程方式?

解决方案4:

影响不大,清晰的结构比那点性能往往更总要。想做优化的话完全可以通过第三方工具(Pypy等)。


以上介绍了“ (python)多层嵌套的if判断需要优化么?对性能影响大么?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/4066385.html

相关图片

相关文章