Home
SR's Dev-Log
Cancel

[Better Way #33] yield from을 사용해 여러 제너레이터를 합성하라

본문은 “파이썬 코딩의 기술 (Effective Python, 2판)”의 “Chapter 04. Comprehensions and Generators”을 읽고 정리한 내용입니다. yield from 식 파이썬 인터프리터가 사용자 대신 for 루프를 내포시키고 yield 식을 처리하도록 한다. 여러 제너레이터를 모아서 하나의 제너...

[Better Way #32] 긴 리스트 컴프리헨션보다는 제너레이터 식을 사용하라

본문은 “파이썬 코딩의 기술 (Effective Python, 2판)”의 “Chapter 04. Comprehensions and Generators”을 읽고 정리한 내용입니다. 제너레이터 식 () roots = ((x, x**0.5) for x in it) print(next(roots)) 리스트 컴프리헨션의 문제점: 입력이 ...

[Better Way #31] 인자에 대해 이터레이션할 때는 방어적이 돼라

본문은 “파이썬 코딩의 기술 (Effective Python, 2판)”의 “Chapter 04. Comprehensions and Generators”을 읽고 정리한 내용입니다. 이터레이터의 StopIteration def normalize(numbers): # -- numbers가 이터레이터인 경우, total = sum...

[Better Way #30] 리스트를 반환하기보다는 제너레이터를 사용하라

본문은 “파이썬 코딩의 기술 (Effective Python, 2판)”의 “Chapter 04. Comprehensions and Generators”을 읽고 정리한 내용입니다. # -- 리스트를 반환하는 함수 def index_words(text): result = [] if text: result.appen...

[Better Way #29] 대입식을 사용해 컴프리헨션 안에서 반복 작업을 피하라

본문은 “파이썬 코딩의 기술 (Effective Python, 2판)”의 “Chapter 04. Comprehensions and Generators”을 읽고 정리한 내용입니다. 대입식(:=)을 통해 컴프리헨션이나 제너레이터 식의 조건 부분에서 사용한 값을 다른 위치에서 재사용할 수 있다. def get_batche...

[Better Way #28] 컴프리헨션 내부에 제어 하위 식을 세 개 이상 사용하지 말라

본문은 “파이썬 코딩의 기술 (Effective Python, 2판)”의 “Chapter 04. Comprehensions and Generators”을 읽고 정리한 내용입니다. 컴프리헨션 사용 시 권장 사항 컴프리헨션에 들어가는 하위 식이 세 개 이상 되지 않도록 제한하는 것을 권장한다. ex) (조...

[Better Way #27] map과 filter 대신 컴프리헨션을 사용하라

본문은 “파이썬 코딩의 기술 (Effective Python, 2판)”의 “Chapter 04. Comprehensions and Generators”을 읽고 정리한 내용입니다. 리스트, 딕셔너리, 집합 등을 다룰 때 map과 filter를 사용하기보다는 컴프리헨션을 사용하는 것을 권장한다. map, filter 사용 버전...

[Better Way #26] functools.wraps을 사용해 함수 데코레이터를 정의하라

본문은 “파이썬 코딩의 기술 (Effective Python, 2판)”의 “Chapter 03. Functions”을 읽고 정리한 내용입니다. 데코레이터 (decorator) 자신이 감싸고 있는 함수가 호출되기 전과 후에 코드를 추가로 실행해준다. 즉, 자신이 감싸고 있는 함수의 입력 인자, 반환 값, 함수에서 ...

[Better Way #25] 위치로만 인자를 지정하게 하거나 키워드로만 인자를 지정하게 해서 함수 호출을 명확하게 만들라

본문은 “파이썬 코딩의 기술 (Effective Python, 2판)”의 “Chapter 03. Functions”을 읽고 정리한 내용입니다. * - 위치 기반 인자의 마지막 & 키워드만 사용하는 인자의 시작 # ignore_overflow와 ignore_zero_division은 키워드를 사용해서만 지정할 수 있음 def saf...

[Better Way #24] None과 독스트링을 사용해 동적인 디폴트 인자를 지정하라

본문은 “파이썬 코딩의 기술 (Effective Python, 2판)”의 “Chapter 03. Functions”을 읽고 정리한 내용입니다. 디폴트 인자 디폴트 인자 값은 그 인자가 포함된 함수 정의가 속한 모듈이 로드되는 시점에 단 한 번만 평가 된다. 동적인 값(ex. {}, [], datetime.now() 등)의 경우,...