상세 컨텐츠

본문 제목

Decorator / Generator

카테고리 없음

by hunss 2023. 1. 17. 20:12

본문

Decorator

함수를 받아 명령을 추가한 뒤 이를 다시 함수의 형태로 반환하는 함수.

함수의 내부를 수정하지 않고 기능에 변화를 주고 싶을 때 사용함.

--> 반복을 줄이고 메소드나 함수의 책임을 확장함.

 

데코레이터 = 상속을 받는게 아니라 그냥 가져다가 붙여서 씀.

오버라이딩 = 상속을 받아서 부모class를 기능을 새로 바꿈.


Generator

개념 = iterator를 생성해주는 함수.

모든 generator는 iterator / iterable한 순서가 지정됨.

yield 키워드를 사용함.

 

iterator 란?

순서대로 다음 값을 리턴할 수 있는 객체를 의미함.

자체적으로 내장하고 있는 next메소드를 통해 다음 값을 가져올 수 있음. 

python의 for문 내부적으로 Iterator를 생성하여 동작하는 것. 

yield 란?

일반적인 함수는 어떤 결과 값을 return 키워드를 이용해서 반환하는데, yield키워드를 사용하면 다르게 받을 수 있다.

list = [ 'A', 'B', 'C']  를 return 해서 받아보면 list로 결과가 나오는데 yield를 사용했으면 generator로 반환함.