python - 多层嵌套的if判断需要优化么?对性能影响大么?
巴扎黑
巴扎黑 2017-04-18 09:49:41
0
4
3275
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()

类似这种形式。

巴扎黑
巴扎黑

membalas semua(4)
迷茫

Impaknya tidak besar, struktur yang jelas selalunya lebih penting daripada prestasi kecil itu. Jika anda ingin mengoptimumkan, anda boleh menggunakan alat pihak ketiga (Pypy, dsb.).

黄舟

Terutama kerana ia hodoh, kod yang tidak elegan.
yang lain boleh digantikan dengan continue.

Mengenai prestasi, adakah anda pasti mahu menggunakan threading.Thread?

阿神

Ia agak bertele-tele, tulis kod biasa dalam cuba dan kendalikan pengecualian sql kecuali

黄舟

Pertimbangkan kebolehbacaan dan kebolehselenggaraan dahulu

Anggap prestasi terakhir

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan