开发者

Where do I put common code for if and elif?

开发者 https://www.devze.com 2022-12-25 23:37 出处:网络
For the example below: if a == 100: # Five lines of code elif a == 200: # Five lines of code Five lines of code is common and repeating how can I avoid it?

For the example below:

 if a == 100:
     # Five lines of code
 elif a == 200:
     # Five lines of code

Five lines of code is common and repeating how can I avoid it? I know about putting it a function

or

if a == 100 or a == 200:
    # 开发者_开发技巧Five lines of code
    if a == 100:
        # Do something
    elif a == 200:
        # Do something

Any other cleaner solution?


Alternative (1): put your 5 lines in a function, and just call it

Alternative (2)

if a in (100, 200):
   # five lines of code
   if a == 100:
      # ...
   else:
      # ...

A little less verbose than your code


Remember that with functions, you can have local functions with a closure. This means you can avoid passing repetitive arguments and still modify locals. (Just be careful with assignments in that local function. Also see the nonlocal keyword in Python 3.)

def some_func(a):
  L = []

  def append():
    L.append(a)  # for the sake of example
    #...

  if a == 100:
    append()
    #...
  elif a == 200:
    append()
    #...


def five_lines(arg):
  ...

if a in [100,200]:
    five_lines(i)
0

精彩评论

暂无评论...
验证码 换一张
取 消