python
[python] 일급객체
전감자(◔◡◔)
2022. 9. 26. 20:49
'''
일급 객체 (first-class)
==> 파이썬, javascript
개요:
함수를 데이터로 처리한다.
1) 함수를 변수에 저장할 수 있다.
예> 변수=10
변수="홍길동
변수={10,20}
변수=함수(*****)
2) 함수를 다른 함수 호출 시 인자값(argument)로 사용 가능하다.
예>
fun(10)
fun("홍길동")
fun([10,20])
fun(함수) (******)
3) 함수 실행 후 리턴 값으로 함수를 사용할 수 있다.
-파이썬의 모든 변수는 참조형
-함수를 만들면 함수명으로 된 변수가 생성
-함수의 객체가 생성
-함수명이 함수객체 참조(함수객체의 주소를 저장)
-사용 1.fun 변수만 사용 n=fun
-사용 2.fun()
'''
def fun():
print("fun")
print("활용1: 함수를 참조하는 변수만 사용가능",fun)#<function fun at 0x00000243984AE160>
print("활용2: 함수호출해서 실행")
fun()
# 1) 함수를 변수에 저장할 수 있다
xx=fun # 두 개의 변수가 하나의 함수 객체를 참조
fun()
xx()
print()
# 2) 함수를 다른 함수 호출 시 인자값으로 사용가능하다.
# fun3를 호출했는데 fun2가 호출됨 (trigger)함수
def fun1():
print("fun1")
def fun2():
print("fun2")
def fun3(f):
f()
fun3(fun2)
fun3(fun1) #트리거 함수 구현방법 :함수 호출시 함수이름을 파라미터로 전달
# 3) 함수 실행 후 리턴값으로 함수를 사용할 수 있다.
def m():
print("m")
def m2():
return m # 다른 함수를 리턴 값으로 사용가능
xxx=m2()
xxx()