对于以下示例:
if a == 100:
# Five lines of code
elif a == 200:
# Five lines of code
五行代码很常见,重复如何避免? 我知道把它变成一个函数
或
if a == 100 or a == 200:
# Five lines of code
if a == 100:
# Do something
elif a == 200:
# Do something
还有其他更清洁的解决方案吗?
答案 0 :(得分:4)
替代方案(1):将5行放在一个函数中,然后调用它
替代方案(2)
if a in (100, 200):
# five lines of code
if a == 100:
# ...
else:
# ...
比你的代码简洁一点
答案 1 :(得分:1)
def five_lines(arg):
...
if a in [100,200]:
five_lines(i)
答案 2 :(得分:1)
请记住,对于函数,您可以使用带闭包的本地函数。这意味着您可以避免传递重复参数并仍然修改本地。 (请注意本地函数中的赋值。另请参阅Python 3中的nonlocal
关键字。)
def some_func(a):
L = []
def append():
L.append(a) # for the sake of example
#...
if a == 100:
append()
#...
elif a == 200:
append()
#...