[python] try/ except /finally/else
·
python/파이썬 코딩의 기술
이번 포스트는 파이썬의 try / except / else / finally 블록에 대해 다루고자 한다. 전반적인 내용은 책 '파이썬 코딩의 기술' 8장인 강건성과 성능에 기반한다. try/except finally else 이전 글 : 2022.03.01 - [파이썬] - Thread - 파이썬 코딩의 기술 리뷰[동시성과 병렬성 2] Thread - 파이썬 코딩의 기술 리뷰[동시성과 병렬성 2] 저번 포스트에서 책의 7장 내용인 '동시성(concurrency)과 병렬성(parallelism)'에 대해 간략히 개념을 잡았다. 이번에는 thread의 약간 심화 버전으로 정리를 해보려고 한다. 지난 글: https://hi-lu.tistory.c. hi-lu.tistory.com 1. try / except..
Thread - 파이썬 코딩의 기술 리뷰[동시성과 병렬성 2]
·
python/파이썬 코딩의 기술
저번 포스트에서 책의 7장 내용인 '동시성(concurrency)과 병렬성(parallelism)'에 대해 간략히 개념을 잡았다. 이번에는 thread의 약간 심화 버전으로 정리를 해보려고 한다. 지난 글: https://hi-lu.tistory.com/entry/파이썬-코딩의-기술-리뷰-동시성과-병렬성-1 파이썬 코딩의 기술 리뷰- 동시성과 병렬성 1 이번에는 책의 7장 내용인 '동시성(concurrency)과 병렬성(parallelism)'에 대해 먼저 정리하겠다. 주로 개념들을 잡고 가는 기록이 될 듯하다. 동시성 , 병렬성 subprocess thread coroutine 개념잡기 - 동시성 &. hi-lu.tistory.com 0. 간단 용어 설명 fan in : 프로세스 내 다음 단계로 가기 ..
python3 애트리뷰트, 메타클래스 - 2
·
python/파이썬 코딩의 기술
지난 포스트에 이어서 '파이썬 코딩의 기술' 책의 6장인 메타 클래스와 애트리뷰트에 대해 마저 기술해보도록 하겠다. 메타클래스 __init__subclass__ __set_name__ 클래스 데코레이터 0. 간단 정의 클래스 애트리뷰트 : 클래스 내 self가 붙어있는 친구들이라 보면 편하다. 클래스 내 object라고 보면 될 듯. 메타클래스 : 클래스를 넘어가는 개념, 클래스 문을 가로채서 특별한 동작을 진행할 수 있음. ex) 클래스 잘 구현됐는지 검증 1. 메타클래스 클래스가 잘 구현됐는지 검증하기 위해 메타클래스를 사용할 수 있다. __init__메서드에서 검증 코드를 실행하는 경우가 많은데, 이때의 장점은 클래스 모듈을 import 할 때와 같은 시점에 검증 코드가 실행되게 때문에 예외를 더 ..
파이썬 리스트 append 연산 시 arr와 arr[:] 차이점
·
python/파이썬 코딩의 기술
최근 파이썬으로 순열을 짜다가 놓치고 있는 게 있는 것 같아 글을 쓴다. 다음과 같이 1번 코드, 2번 코드는 순열(permutation)을 재귀 함수로 푸는 코드이다. 차이점은 5번째 줄 arr.append()에 파라미터로 tmp를 주느냐, tmp[:]를 주느냐의 차이다. ## 1번 코드 def permute(self, nums: List[int]) -> List[List[int]]: arr = [] def backtrack(tmp = []): if len(tmp) == len(nums): arr.append(tmp) return for n in nums: if n in tmp: pass else: tmp.append(n) backtrack(tmp) tmp.pop() return backtrack() ..
파이썬 코딩의 기술 - 컴프리헨션, 제너레이터
·
python/파이썬 코딩의 기술
지난 글에서는 책 '파이썬 코딩의 기술'을 리뷰하면서 함수에 대해 정리해 보았다. 이번에는 파이썬 컴프리헨션과 제너레이터의 여러 활용에 대해 알아보도록 하자. 파이썬 내장 라이브러리인 itertools에 대해서는 다루지 않을 예정이다. 컴프리헨션 제너레이터 식 생성 yield, next yield from send throw 1. 컴프리헨션 컴프리헨션이란 컴프리헨션은 다른 시퀀스나 iterable에서 새로운 데이터 구조(리스트, 딕셔너리 등)를 생성할 수 있는 구문으로, 컴프리헨션 내 왼쪽에서 오른쪽으로 실행된다. 아래 예시 표와 같이 가독성 측면에서 map, filter를 대신할 수 있다. 다만 컴프리헨션 예시에서 볼 수 있다시피, 컴프리헨션 내부에 하위 식이 많으면 가독성이 떨어지기 때문에 주의해야 ..
파이썬 코딩의 기술 - 리스트, 딕셔너리
·
python/파이썬 코딩의 기술
책 '파이썬 코딩의 기술'에서 2장 내용인 리스트와 딕셔너리에 대해 다뤄보도록 하겠다. 슬라이드, 슬라이싱에 대해선 정리하지 않을 예정이다. 다룰 항목은 다음과 같다. 언패킹 key dic get setdefault defaultdic 1. 언패킹 * (별표식)으로 값들을 다음과 같이 언패킹 할 수 있다. 이 *식은 리스트 인스턴스가 된다. def my_function(): ... return a, b, c, d, e #언패킹 no 사용 a, b, c, d, e = my_function #언패킹 사용 예 1: a,b만 필요할 때 a, b, * = my_function #언패킹 사용 예 2: 맨 앞뒤 return값만 필요할 때 a, *bdc, e = my_function 별표식이 항상 리스트를 만들기 때문..
lu.na
'python3' 태그의 글 목록