Python

2024년 3월 19일 Python-Closer&Decorater

황수환 2024. 3. 19. 16:33

1. 클로저는 프로그래밍 언어에서 중요한 개념 중 하나야 함수와 그 함수가 참조하는 외부 변수 

사이의 관계를 나타내. 함수의 내부에서 정의된 함수로, 내부 함수가 외부 함수의 변수에 접근 가능하고

외부함수는 내무 함수를 반환할 수 있어 인오 인해서 함수와 그 함수가 참조하는 상태(변수)를 함께 저장하고 유지하지

 

n값에 각각 값을 넣어주고 출력해준거야 함수형태로 매개변수와 곱해준 값을 리턴 받는건데

n대신에 10을 넣어서 20을 리턴 받고 5를 넣어서 10을 리턴 받는거지

 

이번엔 클래스를 사용해볼껀데 생성자를 만들고 m을 초기화 시킨 값에 m을 다시 넣어 주고 mul( )함수에 

n이라는 매개변수를 만들고 m * n값을 리턴해주는건데 Mul(2)를 해주면 m에 2가 들어가거든 그리고 그걸 mul2에 넣어주고 mul(10)해주면 n에 10이 들어가겠지 그러면 첫 번째 값은 20이고 두 번째 값은 10이 나오는거겠지

 

call이라는 생성자까지 같이 사용해 볼건데 call은 객체를 실행해주면 자동으로 호출되는거야print( )형식으로 실행해준거야

맨위를 실행시키면 생성자를 호출해주고 10을 넣어주면 call을 호출해주고 값 리턴 5넣어주고 호출 리턴 이런 방식인거지

 

2. 데코레이터는파이썬에서 함수나 메소드의 동작을 수정하거나 확장하기 위한 강력한 도구

데코레이터는 함수나 메소드를 래핑하거나 감싸서 추가 기능을 제공, 코드 재사용성, 가독성을 향상시켜줘

@기호를 사용하여 함수나 메소드위에 적용되고있지

외부에서 파일을 불러 오고 싶으면 import를 사용하면 되는데 밑에는 비슷해

함수를 실행시켜서 그 시간을 알아보는 코드인거야

값을 넣어주면 스타트되고 시간을 보여주고 리턴값을 받는거야

 

elapsed( )를 사용하여 코드를 좀 더 간결하게 만들 수가 있지

 

오늘도 여기까지~~ 뿅간다