【发布时间】:2012-11-28 14:18:33
【问题描述】:
if a == arg:
if arg not in a_list:
do_something(arg)
elif b == arg:
if arg not in b_list:
do_something(arg)
else:
do_something_else(arg)
提出一种惯用的方法来缩短和特别干燥上述语句 - 而不将其部分提取到单独的函数中。
编辑:有趣 ;-) 这不是家庭作业,也不是审查我的代码的请求,也许如果我将上面的内容重新构建如下,我的意图会变得更加清晰:
在 if 语句之上编写的 Python 方式是什么?我觉得我错过了一些东西,也许可以利用 python 中的和/或运算符?不将它的任何部分提取到单独的函数的原因是,这个问题更多的是关于重构而不是惯用的 pythonian if-logic。
【问题讨论】:
-
它可以是一个你得到 "X" 和 "X_list" 的函数吗?还是你总是有 a,b,a_list,b_list ? match到底在做什么?
a和b是什么类型的对象? -
“不将其部分提取到单独的函数中” – 为什么?
-
"extracting parts of it to separate functions" == DRY -
@InbarRose 谢谢你的问题,我已经编辑了文本以反映方法和类型无关紧要。