반응형
1). Closure
-
중첩함수가 부모함수의 변수나 정보를 닫아놓고 사용하는것
-
부모함수는 내부함수를 리턴하는 방식으로 사용
-
내부 함수에 직접적인 접근 불가능
-
설명 :
-
cals() 부모함수에 2를 넣어 주면, 부모함수의 파라미터 n을 자식함수의 n에 대입시켜 자식함수를 return한다.
-
부모함수를 변수에 담아 사용할때는 부모함수의 파라미터를 포함한 자식함수가 담기게 된다.
-
그 변수에 파라미터를 넣어주어 호출하면 자식함수의 파라미터에 변수파라미터가 담기게 되어 실행된다.
def cals(n):
def sum(digit):
return digit + n
return sum
nth = cals(2)
nth(2)
==> 4
2). Decorator
-
다른 함수에 함수를 적용하여 실행하는 방식
def decorator_tt(func):
def wrapper():
print("먼저실행된다")
func() ==> Decorator를 달아놓은 함수가 실행
print("나중에 실행된다")
return wrapper
##적용
@decorator_tt
def login():
print("실행함수")
==>
먼저실행된다
실행함수
나중에 실행된다
-
파라미터가 있는 함수에 Decorator 적용
-
파라미터에 관계없이 모든 함수에 적용가능하게 만들려면?
-
input1,input2로 정의 하지않고, *args, **kwargs 로 정의 하여 사용하면 된다.
>>> def type_checker(func):
... def wrapper(input1,input2):
... if type(input1) != int or type(input2) != int:
... print("뭐야이거")
... return
... return func(input1,input2) ==>왜 func(input1,input2)를 return하지..? => 내생각엔 조건을 만족하면 원래 그대로의 function을 유지한다라는 뜻인 것 같다.
... return wrapper
...
>>> @type_checker
... def mul(input1,input2):
... return input1*input2
...
>>> mul('a','b')
뭐야이거
>>> mul(1,2)
2
반응형
'Python' 카테고리의 다른 글
[Python] Pandas 기초 공부 - Series (0) | 2021.01.13 |
---|---|
[Python] Class란? 개념잡기 (0) | 2021.01.04 |
[Python] Self 및 Class개념 잡기 (0) | 2021.01.04 |
[Python] - JSON Parsing(파싱) (0) | 2020.12.30 |
[Python] 기초문법 - 함수 (0) | 2020.12.29 |