如何将代码压缩到更少的行?

时间:2017-03-16 19:58:23

标签: python

我正在创建一个化学模拟器类型程序,它使用42种不同的反应物质,当2种物质组合时产生输出。每个物种都具有例如锂是1,钠是2,钾是3.我有一个def()语句设置为在调用时设置这些值,如下所示。

def choselithium():
   global firstchoice
   global secondchoice
   global ChoosingAgain

   if ChoosingAgain == 0:
       firstchoice = 1
       vp_start_gui_whatnow()

   if ChoosingAgain == 1:
       secondchoice = 1
       vp_start_gui_areyousure()

这些12行使用42次后,这显然变得非常低效,直到这些简单的语句占用超过400行代码。有没有办法可以通过使用类或类似的对象将它们缩减为更少的行?在这种情况下,vp_start_gui_whatnow()和vp_start_gui_areyousure()启动菜单,显示刚刚做出的选择,使用下面的sql语句从数据库中选择文本值:

def getfirstchoice():
    global output
    sqlcommand2 = "SELECT ChoiceDesc FROM Choices WHERE Choice_ID = ?"
    result2 = c.execute(sqlcommand2, (firstchoice,))
    result2 = [x for y in result2 for x in y]
    output = result2[0]
    return output

def getsecondchoice():
    global output2
    sqlcommand3 = "SELECT ChoiceDesc FROM Choices WHERE Choice_ID = ?"
    result3 = c.execute(sqlcommand3, (secondchoice,))
    result3 = [x for y in result3 for x in y]
    output2 = result3[0]
    return output2

0 个答案:

没有答案