Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬의 퍼스트 클래스 함수

<시간/>

다른 프로그래밍 언어에서 First Class 객체는 균일하게 처리될 수 있는 객체입니다. 퍼스트 클래스 객체는 데이터 구조, 일부 다른 함수의 매개변수, 제어 구조 등으로 저장할 수 있습니다. 파이썬의 함수는 퍼스트 클래스 객체의 모든 속성을 지원하는 경우 퍼스트 클래스 함수라고 말할 수 있습니다.

일급 함수의 속성은 무엇입니까?

  • 객체 유형의 인스턴스입니다.
  • 함수를 변수로 저장할 수 있음
  • 일급 함수를 다른 함수의 인수로 전달
  • 다른 함수에서 함수 반환
  • 목록, 집합 또는 기타 데이터 구조에 함수를 저장합니다.

먼저 Python의 Functions를 객체로 사용하는 방법을 살펴보겠습니다. 파이썬에서는 함수를 변수로 할당할 수 있습니다. 변수로 할당하기 위해 함수는 호출되지 않습니다. 따라서 괄호 '()'는 표시되지 않습니다.

예시 코드

def cube(x):
   return x*x*x
res = cube(5)
print(res)
my_cube = cube #The my_cube is same as the cube method
res = my_cube(5)
print(res)

출력

125
125

이제 함수가 다른 함수의 인수를 전달할 수 있는 방법을 볼 것입니다. 다음은 예입니다.

예시 코드

def cube(x):
   return x*x*x
defmy_map(method, argument_list):
   result = list()
   for item in argument_list:
      result.append(method(item))
   return result
my_list = my_map(cube, [1, 2, 3, 4, 5, 6, 7, 8]) #Pass the function as argument
print(my_list)

출력

[1, 8, 27, 64, 125, 216, 343, 512]

다음은 First Class Functions의 세 번째 속성입니다. 이 경우 다른 함수에서 한 함수를 반환합니다.

예시 코드

defcreate_logger(message):
   deflog():
      print('Log Message: ' + message)
   return log #Return a function
my_logger = create_logger('Hello World')
my_logger()

출력

Log Message: Hello World