본문 바로가기

Python5

파이썬 클로저 (closure) 0. 클로저란 프로그래밍 언어에서 퍼스트 클래스 함수 (First class function) 를 지원하는 언어의 네임 바인딩 기술이다. 클로저는 어떤 함수를 함수 자신이 가지고 있는 환경과 함께 저장한 레코드이다 또한 함수가 가진 프리변수(free variable)를 클로저가 만들어지는 당시의 값과 래퍼런스에 맵핑하여 주는 역활을 한다. 클로저는 일반 함수와는 다르게 자신의 영역 밖에서 호출된 함수의 변수값과 레퍼런스를 복사하고 저장한 뒤, 이 캡쳐한 값들에 엑세스 할 수 있게 도와준다. 자신을 둘러싼 스코프(네임스페이스)의 상태값을 기억하는 함수라고 생각하면 될 것 같다. 1. 클로저 사용의 장점 관리와 책임을 명확히 할 수 있고 각 변수가 섞여 불필요한 충동을 방지할 수 있으며 사용환경(contex.. 2021. 3. 6.
파이썬 일급 객체 (First-Class) # 일급 객체 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 일급 객체라고 한다. 일급 객체는 객체 지향 프로그래밍(OOP) 중에서 파이썬을 포함한 몇몇 프로그래밍 언어에서 발견할 수 있는 개념이다. 파이썬의 모든 것은 객체인데 그렇기 때문에 함수 또한 객체이며 일급 객체이고 일급 함수라고 부른다. 일급 객체란 다음의 특징을 모두 충족하는 객체를 말한다 변수에 할당 할 수 있다. 다른 함수를 인자로 전달받을 수 있다. 다른 함수의 결과로서 리턴될 수 있다. 1. 변수에 할당 def print_hello(name): print("hello~ {}".format(name)) # 변수에 할당 var_func = print_hello print(var_func, print_hello) # >.. 2021. 3. 5.
파이썬 datetime # datetime 모듈 사용하기 # 파이썬 날짜와 시간 다루기 from datetime import datetime # 오늘 날짜와 시간 구하기 today_datetime = datetime.today() print("today_datetime : {}, {}".format(type(today_datetime), today_datetime)) # >>> 2021-03-01 12:50:13.479297 # 날짜지정 any_datetime = datetime(year=2020, month=3, day=1, hour=23, minute=20, second=0) print("any_datetime : {}, {}".format(type(any_datetime), any_datetime)) # >>> any_d.. 2021. 3. 2.
파이썬 map, filter, reduce # map 함수 - map(function, iterable, ...) - iterable 의 모든 항목에 function 을 적용한 후 그 결과를 이터레이터로 돌려준다 def mul_two(n): return n * 2 # map 사용 numbers = [1, 2, 3, 4, 5] print(map(mul_two, numbers)) # >>> # map to list 형번환 print(list(map(mul_two, numbers))) # >>> [2, 4, 6, 8, 10] # 익명함수 lamda 사용 print((list(map(lambda x: x * 2, numbers)))) # >>> [3, 4, 5, 6, 7] # filter 함수 - filter(function, iterable) - fu.. 2021. 3. 1.