sonichuang 发表于 2018-8-9 17:58:16

Python,easygui中重复出现含有continue语句的代码,如何通过定义函数来简化代码?

昨天写了一段代码,里面有while循环,而且重复出现很多如下进行判断功能的代码,里面含有continue语句,怎么通过定义函数来简化代码呢?

askcontinue = easygui.ccbox('是否要继续选择其他文件,或者退出程序?' , choices = ('【继续选择】', '【退出程序】') )
if askcontinue == True:
    path = root
    continue
else:
    sys.exit()

无符号整形 发表于 2018-8-9 18:17:30

没有办法哦……
python没有宏定义

花鱼儿 发表于 2018-8-9 18:36:14

没办法弄成函数的话,弄成一个模块,可行吗?

sonichuang 发表于 2018-8-9 20:11:49

真的没有办法吗?

sonichuang 发表于 2018-8-15 22:24:23

关于这个问题终于有了答案,今天我把这个问题再次提在微信群里,受群里高手指点有方法如下两个:
1. 定义函数为如下
def askcontinue():
    askcontinue = g.ccbox('是否要继续选择其他文件,或者退出程序?' , choices = ('【继续选择】', '【退出程序】') )
    if askcontinue == True:
      path = root
      return 'continue'
    else:
      sys.exit()
然后在代码要调用函数的地方写成:
if askcontinue() == 'continue':
      continue
这个方法巧妙的避开的continue语句直接出现在函数定义里面,而是通过个桥梁过渡到主代码中再来执行continue语句,而如果没有return ’continue',自然就会直接到函数定义的else语句里面,不会出现任何错误。

而更加巧妙的是第二个方法, 直接把函数定义里的continue语句直接换成pass语句:
def askcontinue():
    askcontinue = g.ccbox('是否要继续选择其他文件,或者退出程序?' , choices = ('【继续选择】', '【退出程序】') )
    if askcontinue == True:
      path = root
      pass
    else:
      sys.exit()

这个方法直接忽略掉continue但是起到了continue一样的作用。绝妙!
页: [1]
查看完整版本: Python,easygui中重复出现含有continue语句的代码,如何通过定义函数来简化代码?