r527665047 2021-07-17 23:03 采纳率: 0%
浏览 114

python中代码高度重复的if语句如何合并重构?

在一个函数中,根据传入的参数来决定某一个定义的值,代码如下:

def result(self, num):
  if num ==1:
    name = "axxx"
    十几行代码
  elif num ==2:
    name = "bxxx"
    十几行代码
  elif num ==3:
    name = "cxxx"
    十几行代码
  elif ……

目前的代码非常臃肿,每个if语句里面的“十几行代码”都是一模一样的,主要是根据name的值对数据库进行一系列操作。我能想到的精简方案是再定义一个新的函数出来,把这“十几行代码”放进去,把name作为参数传递进去,然后所有的if判断语句都去调用这个函数,但是感觉这代码还是好臃肿啊。请问有没有更加优美的写法?

  • 写回答

3条回答 默认 最新

  • 碧池阿蒂拉 2021-07-17 23:24
    关注

    啊 我不太理解 既然那十几行代码一模一样,那么为什么要单独写在每个elif下面,直接提出来不就行了

    评论

报告相同问题?

问题事件

  • 修改了问题 7月17日
  • 创建了问题 7月17日

悬赏问题

  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)
  • ¥15 船舶旋回实验matlab
  • ¥30 SQL 数组,游标,递归覆盖原值
  • ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
  • ¥20 gitlab 中文路径,无法下载
  • ¥15 用动态规划算法均分纸牌
  • ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据