这个python代码如何简化

        threads = []
        if self.Check1Var.get()== True:
            threads.append(threading.Thread(target=self.baidu))
        if self.Check2Var.get()== True:
            threads.append(threading.Thread(target=self.so360))
        if self.Check3Var.get()== True:
            threads.append(threading.Thread(target=self.sougou))
        if self.Check4Var.get()== True:
            threads.append(threading.Thread(target=self.alibaba))
        if self.Check5Var.get()== True:
            threads.append(threading.Thread(target=self.huicong))
        if self.Check6Var.get()== True:
            threads.append(threading.Thread(target=self.aicaigou))
        if self.Check7Var.get()== True:
            threads.append(threading.Thread(target=self.makepolo))
        if self.Check8Var.get()== True:
            threads.append(threading.Thread(target=self.yibu))
        if self.Check9Var.get()== True:
            threads.append(threading.Thread(target=self.huangye))
        if self.Check10Var.get()== True:
            threads.append(threading.Thread(target=self.sole))
        if self.Check11Var.get()== True:
            threads.append(threading.Thread(target=self.qihui))
        if self.Check12Var.get()== True:
            threads.append(threading.Thread(target=self.zhongke))
        if self.Check13Var.get()== True:
            threads.append(threading.Thread(target=self.jidian))
        if self.Check14Var.get()== True:
            threads.append(threading.Thread(target=self.wujin))
        if self.Check15Var.get()== True:
            threads.append(threading.Thread(target=self.shijie))
        if self.Check16Var.get()== True:
            threads.append(threading.Thread(target=self.chinacn))
        if self.Check17Var.get()== True:
            threads.append(threading.Thread(target=self.food))
        if self.Check18Var.get()== True:
            threads.append(threading.Thread(target=self.gaide))
        for a in threads:
            a.setDaemon(True)
            a.start()

能否简化一下。谢谢了。

阅读 1.7k
1 个回答
infoList = [
  {
    check: self.Check1Var,
    target: self.baidu
  },
  # xxx
]

threads = []
for info in infoList:
  if info.get():
    threads.push(threading.Thread(target = info.target))

先将要处理的数据装到列表,再遍历进行相同处理。
原则就是逻辑部分、数据部分分离,代码看起来就会清晰很多。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进