들어가기 전 이 글은 이펙티브 파이썬을 공부하며 작성한 글입니다. 코드 : https://github.com/chickenchickenlove/effective-python/tree/master/item10 요약 왈러스 연산자를 사용해서 대입식 중복을 줄일 수 있음. 왈러스 연산자는 값을 대입 → 식평가 순서로 처리됨. 왈러스 연산자를 이용해 중복 제거, 무한 루프(While문) 등을 가독성 있게 처리할 수 있음. Item10. 왈러스 연산자를 사용해 반복을 피하라. 왈러스 연산자는 '대입식'이라고도 불린다. if (a:=1) > 1: pass 왈러스 연산자는 위처럼 사용하고, 다음 순서로 처리된다. 변수에 값을 대입 대입된 값을 이용해 식을 평가 코드1. 대입식으로 코드 개선 fresh_fruits =..
들어가기 전 이 글은 이펙티브 파이썬을 공부하며 작성한 글입니다 코드 : https://github.com/chickenchickenlove/effective-python/tree/master/item28 요약 컴프리헨션 내부에는 식을 2개 까지만 사용해라. (루프문 2개 / 루프문1 + 조건문1..) 컴프리헨션 내부에 2개의 루프식이 있는 경우, 왼쪽부터 실행된다. (이중 For문이라고 생각하면 편함. ) Item 28. 컴프리헨션 내부에 제어 하위식을 2개까지만 사용해라. 컴프리헨션 내부에서는 조건문, 루프문 등을 사용할 수 있다. 컴프리헨션 자체는 긴 코드를 짧게 줄일 수 있는 이점이 있지만, 너무 과하게 쓰면 '짧지만 읽기 어려운 코드'가 된다. 컴프리헨션 내부에 식이 3개 들어가는 순간부터 '짧..
들어가기 전 이 글은 이펙티브 파이썬을 공부하며 작성한 글입니다. 코드 : https://github.com/chickenchickenlove/effective-python/tree/master/item45 요약 특정 어트리뷰트에 요구사항이 추가되고, 이를 호출하는 외부 클라이언트에 영향을 주지 않고 확장하고 싶은 경우 @property는 좋은 선택이 될 수 있음. @property를 사용해 데이터 모델을 점진적으로 개선할 수 있음. @property 메서드를 너무 과하게 쓰고 있다면, 클래스와 클래스를 사용하는 모든 코드를 리팩토링 하는 것을 고려해야 함. @property를 너무 많이 사용한 경우, 클래스를 분리하는 방식을 고려해봐야 함. 너무 거대한 @property는 읽기 어려워지고, 클래스로 분..
들어가기 전 이 글은 이펙티브 파이썬을 공부하며 작성한 글입니다. 코드 : https://github.com/chickenchickenlove/effective-python/tree/master/item44 요약 새로운 클래스 인터페이스를 정의할 때, 간단히 public attribute도 시작하고 Setter / Getter를 가급적이면 사용하지 마라. 객체에 있는 Attribute에 접근할 때, 부가 기능이 필요한 경우 @property로 이를 구현할 수 있음. @property를 사용할 때, 최소 놀람의 법칙을 따르고 이상한 부작용을 만들지 마라. @property 메서드가 빠르게 실행되도록 유지. 느리거나 복잡한 작업의 경우, 일반적인 메서드를 사용하라. @property로 setter를 정의하면..
들어가기 전 이 글은 이펙티브 파이썬을 공부하며 작성한 글입니다. 1. Itertools 라이브러리 Itertools 라이브러리에는 이터레이터를 위한 몇 가지 기능들이 추가되어있다. 이터레이터와 관련된 코드가 복잡해지는 경우라면, itertools 라이브러리에서 원하는 기능을 지원하는지 살펴보는 것이 좋을 수 있다. 2. 여러 이터레이터 연결하기 itertools에는 여러 이터레이터를 하나로 합치는데 사용할 수 있는 함수들이 지원된다. 2.1 chain() it = itertools.chain([1,2,3], [4,5,6]) print(list(it)) >>> [1, 2, 3, 4, 5, 6] 여러 이터레이터를 하나의 이터레이터를 합침. 2.2 repeat() # 3번만 반복하는 Iterator 생성 i..