본문 바로가기

effective python

[Effective Python 복습] Chapter 5. 병행성과 병렬성 21. 키워드 전용 인수로 명료성을 강요하자 키워드 인수는 함수 호출의 의도를 더 명확하게 해준다 특히 불 플래그를 여러 개 받는 함수처럼 헷갈리기 쉬운 함수를 호출할 때 키워드 인수를 넘기게 하려면 키워드 전용 인수를 사용하자 파이썬3는 함수의 키워드 전용 인수 문법을 명시적으로 지원한다 리스트에 있는 * 기호는 위치 인수의 끝과 키워드 전용 인수의 시작을 기리킨다 def safe_division_c(number, diviser, *, ignore_overflow=False, ignore_zero_division=False): # ... safe_division_c(1, 10**500, True, False) # TypeError safe_division_c(1, 0, ignore_zero_divisi.. 더보기
[Effective Python 복습] Chapter 4. 메타클래스와 속성 파이썬 코딩의 기술 Chapter4. 메타클래스와 속성 - 메타클래를 이용하면 파이썬의 class문을 가로채서 클래스가 정의될 때마다 특별한 동작을 제공할 수 있다 - 또 하나의 강력한 기능은 속성 접근을 동적으로 사용자화하는 파이썬의 내장 기능이다 - 동적 속성은 객체들을 오버라이드하다가 예상치 못한 부작용을 일으키게 할 수 있다 - 최소 놀랍 규칙을 따르자 29. getter와 setter method 대신에 일반 속성을 사용하자 간단한 공개 속성을 사용하여 새 클래스 인터페이스를 정의하고 setter와 getter method는 사용하지 말자 객체의 속성에 접근할 때 특별한 동작을 정의하려면 @property를 사용하자 @property method에서 최소 놀람 규칙을 따르고 이상한 부작용은 피하.. 더보기
[Effective Python 복습] Chapter 3. 클래스와 상속 파이썬 코딩의 기술 Chapter3. 클래스와 상속 22. 딕셔너리와 튜플보다는 헬퍼 클래스로 관리하자 다른 딕셔너리나 긴 튜플을 값으로 담은 딕셔너리를 생성하지 말자 정식 클래스의 유연성이 필요 없다면 가변운 불변 데이터 컨테이너에는 namedtuple을 사용하자 내부 상태를 관리하는 딕셔너리가 복잡해지면 여러 헬퍼 클래스를 사용하는 방식으로 관리 코드를 바꾸자 class WieghtedGradebook(object): def __init__(self): self._grades = {} def add_student(self, name): self._grades[name] = {} def report_grade(self, name, subject, score, weight): by_subject = se.. 더보기