First class function

  • first class function 조건
  1. argument(parameter) - 매개 변수

    • 함수 자체를 매개변수로 다른 함수에 전달
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      def f(a, b):
      return a + b

      def g(func, c, d):
      return func(c, d)

      a = 10
      b = 20

      g(f, a, b) # 함수 자체를 매개변수로 전달
      >> 30
  2. variable - 변수(값)

    • 함수를 변수에 할당
      1
      2
      3
      4
      5
      6
      def f(a, b):
      return a + b

      f_var = f # 함수를 변수에 할당
      f_var(20 ,30)
      >> 50
  3. return - 반환

    • 다른 함수의 결과값으로 반환
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      def create_calc(kind):
      if kind == 'add':
      def add(a, b):
      return a + b
      return add

      elif kind == 'sub':
      def sub(a, b):
      return a - b

      return sub # 다른 함수의 결과값으로 반환


      f = create_calc('add')
      f(10, 20)
      >> 30
Share