이터레이터와 제너레이터
반복가능한 객체안에 시퀀스 객체가 있다.
__iter__(self)
__next__(self)
클래스를 이터레이터로 쓰려면 해당 코드가 필요하다
iter(반복 가능한 객체 ,반복을 끝낼 값), next(반복가능한 객체, 반복을 끝낼 값).
yield - 제너레이터 이터레이터처럼 만든다. 허나 yield가 있다면 return 불가능
- yield 는 실행을 중지시키고 호출한 곳에 순서를 양보한다. 추후에 호출되면 위치를 기억하여 이어서 실행된다. next나 for문등으로 호출하기 용이하다.
yield from 반복가능한객체
- for문을 내포하고 있는 문법으로 객체에서 하나씩 뽑아준다.
dir()로 __iter__의 유무로 파악가능하다.
데코레이터
- 클로저함수의 형태와 유사하다.
- 데코레이터된 함수를 실행하면 해당 함수의 실행을 유보하고 데코레이터 함수로 간다.
@데코레이터
- 클래스로 메소드를 만드려면 __init__과 더불어 __call__이 필요하다. 매개변수를 call에서 받는다.
정적메소드
클래스메소드
모듈
사용에 용이하게 비슷한 함수와 클래스들을 모아둔다.
from 패키지(모듈) import 모듈(클래스, 함수) as 별명
__name__ == '__main__'