일급객체 : first-class objects
변수나 데이터 구조에 할당이 가능한 객체
파라미터나 리턴값으로 사용 가능
파이썬의 함수는 모두 일급함수이다!
def square(x):
return x*x
f=square
print(f(5))
f(5)나 square(5)나 같은 결과를 얻을 수 있다.
def formula(method, argument_lis):
return [method(value) for value in argument_list]
clmethod에 세제곱, 네제곱, 다섯제곱 등 행할 연산이 들어간다고 하면,
구조와 체계를 만들어 주어 편하게 사용할 수 있다.
내재 함수 : inner function
함수 내에 또 다른 함수가 존재
def print_msg(msg):
def printer():
print(msg)
printer()
print_msg("Hello")
printer라는 내재함수가 존재하는 예제이다.
closures
inner function을 return 값으로 반환
def print_msg(msg):
def printer():
print(msg)
return printer()
a = print_msg("Hello")
a
>>Hello
a를 실행할 때 마다 printer안의 print(msg)가 실행될 것이다.
decorator
복잡한 closure funcion을 간단하게 만들어 준다
def star(func):
def inner(*args,**kwargs):
print(args[1] *30)
func(*args, **kwargs)
print(args[1] * 30)
return inner
@star
def printer(msg, mark):
print(msg)
printer("Hello", "T")
>>TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
Hello
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
printer가 star의 파라미터인 func가 된다.
Reference: 부스트캠프 AI Tech 3기 Pre-Course-Python Object Oriented Programming
'개발 > Python' 카테고리의 다른 글
부스트캠프 AI Tech 3기 Pre-Course [4]-1 Exception Handling / 예외처리 (0) | 2021.12.07 |
---|---|
부스트캠프 AI Tech 3기 Pre-Course [3] Module and Project (0) | 2021.12.07 |
부스트캠프 AI Tech 3기 Pre-Course [2]-2 객체 지향 언어의 특징 (0) | 2021.12.06 |
부스트캠프 AI Tech 3기 Pre-Course [2]-1 객체 지향 언어로써의 파이썬 : Python OOP(Object Oriented Programming) (0) | 2021.12.06 |
[Python] 함수병 변경 (맹글링:mangling), __ 의미, 언더바(under bar) 2개 (0) | 2021.12.06 |