Skip to content

Instantly share code, notes, and snippets.

@nattybear
Last active November 9, 2020 13:47
Show Gist options
  • Save nattybear/b6a8603cd5c774e3efbf84932e9518f0 to your computer and use it in GitHub Desktop.
Save nattybear/b6a8603cd5c774e3efbf84932e9518f0 to your computer and use it in GitHub Desktop.
파이썬 데코레이터로 Maybe 만들기

None 확인하기

파이썬에서는 어떤 값이 None인지 확인하는 코드를 자주 작성하게 된다.

예를 들어 아래와 같은 함수가 있다고 하자.

def half(n):
  return n / 2.0

위와 같은 함수에 만약 None을 넣게 되면 에러가 날 것이다.

그래서 에러를 방지하려면 아래와 같이 입력값이 None인지 검사하는 코드를 넣으면 된다.

def safe_half(n):
  if n is not None:
    return n / 2.0
  else:
    return None

그런데 이렇게 필요할 때마다 함수 안에 None을 검사하는 코드를 넣는 것은 너무 번거롭다.

데코레이터 이용하기

아래와 같이 데코레이터를 이용하면 None을 검사하는 반복되는 코드를 줄일 수 있다.

def maybe(f):
  def wrapper(x):
    if x is not None:
      return f(x)
    else:
      return None
  return wrapper

@maybe
def half(n):
  return n / 2.0

대문 링크

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment