我在哪里放置if和elif的通用代码?

时间:2010-04-09 06:16:38

标签: python conditional

对于以下示例:

 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

还有其他更清洁的解决方案吗?

3 个答案:

答案 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()
    #...