[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..
Python Asyncio
·
python/파이썬 코딩의 기술
지난 포스트에서는 동시성과 병렬성에 대해 아래와 같이 다루어봤다. 동시성 병렬성의 개념, 스레드와 코루틴의 개념 스레드 심화. 스레드의 lock, queue를 이용하는 방법 이번에는 책 '파이썬 코딩의 기술'의 7장, 파이썬 공식문서 내용을 포함해서 asyncio에 대해 비교적 자세히 다뤄보겠다. 책 리뷰보단 공식문서를 더 차용한 거 같아 이번 시리즈 제목은 간단하게 asyncio로 간다. 파이썬 코루틴 공식문서 : https://docs.python.org/ko/3/library/asyncio-task.html 지난글 1: https://hi-lu.tistory.com/entry/파이썬-코딩의-기술-리뷰-동시성과-병렬성-1 지난 글 2: https://hi-lu.tistory.com/entry/Thre..
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() ..
파이썬 코딩의 기술 리뷰 - 메타클래스와 애트리뷰트 1
·
python/파이썬 코딩의 기술
책 '파이썬 코딩의 기술'의 6장인 메타클래스와 애트리뷰트에 대해서 정리해보고자 한다. 애트리뷰트 @property 동적 기능을 위한 애트리뷰트 메서드 0. 정의 메타클래스 : 정의 : 클래스를 넘어서는 개념, class문을 이용해 클래스가 정의될 때마다 특별한 동작 제공 예시 : 동적으로 애트리뷰트 접근을 커스텀화해주는 내장 기능 주의 : '최소 놀람의 법칙' 에 따라 뜻하지 않은 부작용을 피하기 1. 애트리뷰트 다른 언어를 사용할 때는 class 내부에 getter, setter를 명시해준다. 하지만 파이썬은 그럴 필요가 없다. 공개 애트리뷰트(self로 시작하는, 클래스에서 명시한 변수)를 이용하면 된다. # 1. setter, getter 사용 에시 class OldOne: def __init__..
lu.na
'python/파이썬 코딩의 기술' 카테고리의 글 목록