클린코드 Chap2. 파이써닉 코드

타샤's 월드·2022년 8월 11일
0
  • 인덱스와 슬라이스를 이해하고 인덱싱 가능한 객체를 올바른 방식으로 구현
  • 시퀀스와 이터러블 구현하기
  • 컨텍스트 관리자를 만드는 모범 사례 연구
  • 매직 메서드를 사용해 보다 관용적인 코드 구현
  • 파이썬에서 부작용을 유발하는 흔한 실수 피하기

매직 메소드(Magic method)란?

매직메소드

  • 매직 메소드는 ​파이썬에서 사용되는 특별한 메소드들을 의미합니다. 스페셜 메소드(Special method)나 던더 메소드(Double UNDERscore method)라고 부르기도 합니다.

이들은 이미 파이썬 내에 정의되어 있고, 클래스 내부에서 매직 메소드들을 오버라이딩 하여 사용할 수 있습니다. 또한 직접 호출해서 사용하지 않고, 정해진 규칙에 따라 알아서 호출된다는 특징이 있습니다.

num = (1, 1, 2, 3, 5, 8, 13, 21)

num[slice(1, 7, 2)]
>>>(1,3,8)

num[1:7:2]
>>>(1,3,8)


num[slice(None,3)] == num[:3]

컨텍스트 관리자

Context Manager

컨텍스트 관리자

컨텍스트 매니저는 원하는 타이밍에 정확하게 리소스를 할당하고 제공하는 역할을 합니다.

보통 리소스 관리와 관련하여 Context Manager를 자주 사용합니다. 일단 파일을 열면 파일 디스크립터의 누수(resource leak)을 막기 위해 작업이 끝나면 적절히 닫히길 기대합니다. 또는 서비스나 소켓에 대한 연결을 열었을 때도 적절히 닫거나 임시 파일을 제거하는 등의 작업을 해야합니다.

위와 같은 경우에 일반적으로 할당된 모든 리소스를 해제해야 합니다. 모든 것이 잘 처리되었을 경우의 해제는 쉽지만 예외가 발생하거나 오류를 처리해야 하는 경우 모든 조합과 실행 경로에 대하여 처리하는 것은 쉽지 않습니다.

이 때 일반적으로 finally 블록에 정리 코드를 넣는 방법이 있습니다.

profile
그때 그때 꽂힌것 하는 개발블로그

0개의 댓글