일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Algorithm
- Refactoring
- 플랫폼
- BlockChain
- Fast API
- guru
- dockerfile
- function
- 백준
- Ethereum
- 코어 이더리움 프로그래밍
- 파이썬
- 동시성
- rust
- AWS
- Thread
- RabbitMQ
- 전문가를 위한 파이썬
- 이더리움
- fluent python
- BAEKJOON
- Kubernetes
- Container
- Python
- IMAGE
- Network
- 알고리즘
- docker
- 블록체인
- 러스트
- Today
- Total
글쓰기 | 방명록 | 관리 |
목록fluent python (5)
Victoree's Blog
7.1 Future Future은 비동기 작업의 실행 객체이다. future 객체는 concurrent.futures 라이브러리나 asyncio에서 future 객체를 이용할 수 있다. 이 두 Future 클래스 객체는 완료되었을 수도, 아닐수도 있는 지연된 계산을 표현하기 위해 사용된다. Future는 앞으로 일어날 일을 나타내고, 이 실행을 스케줄링하는 프레임워크만이 어떤 일이 일어날지 확실히 알 수 있기 때문에 동시성 프레임워크에서만 배타적으로 생성해야한다. 또한 Client에서 Future의 상태를 변경하면 안된다. 실행 여부를 체크하려면 done() 메소드를 호출함으로 알 수 있고, 일반적으로 클라이언트는 Future가 완료되었는지 물어보는게 아니라 callback으로 통지해주는 것을 요청한다...
코루틴을 알아가기 전에, 예에전에 대학시절에 공부했던 프로세스와 스레드와 관련한 내용을 잠시 잠깐 리뷰하고 가자. 6.1 프로세스와 스레드 Process는 실행중인 프로그램을 말하며, 최소 1개의 thread로 구성되고 thread 단위로 스케줄링된다. 프로세스는 create, ready, run(cpu나 메모리같은 자원을 받음), suspension (메모리를 뺏김) ..등등의 다양한 상태값을 가지며 process control block에 해당 정보(pid, state, program counter - 다음으로 실행할 명령어)들이 기록된다. stack, heap, text(code), data 네개의 자원을 할당받는다. 프로세스 같은 경우, 각 자원들을 독립적으로 할당받기 때문에 종료되어도 다른 프로..
딕셔너리는 파이썬의 핵심이다. 기본적인 dict 외에 표준 라이브러리에서 defaultdict, OrderedDict, ChainMap, Counter 등의 매핑형을 제공하며 이는 모두 collections 모듈에 정의되어 있다. 매핑 API 에서는 __missing__() 메소드는 키를 찾을 수 없을 때 발생하는 일을 정의할 수 있게 해준다. 1.1 딕셔너리 조기 실패 철학에 따라, 존재하지 않는 k로 dictionary에 접근하면 dict는 오류를 발생시킨다. 만약 기본값을 설정하고 싶다면 다음과 같이 세팅할 수 있다. my_dict.setdefault(key, []).append(new_value) if key not in my_dict: my_dict[key]=[] my_dict[key].appe..
시퀀스 지능형 리스트와 제너레이터 표현식은 시퀀스를 생성하고 초기화하는 강력한 표기법이다. 튜플은 익명 필드를 가진 레코드 및 불변 리스트로 사용할 수 있다. 튜플을 레코드로 사용할 때는 튜플 언패킹이 필드에 접근하는 가장 안전하고 가독성 좋은 방법이다. sort()와 sorted() 내장 함수는 사용하기 쉬우며, 선택적인 key 인수에 정렬을 계산하는 함수를 지정할 수 있으므로 융통성도 뛰어나다. 정렬된 시퀀스의 순서를 유지하면서 항목을 추가하려면, bisect.insort() 메소드를 사용하고, 정렬된 시퀀스를 효율적으로 검색하려면 bisect.bisect() 메소드를 사용하자. 1.1 지능형 리스트와 제너레이터 표현식 시퀀스를 읽어서 개수를 세거나 어떤 항목을 골라내거나 합계를 구하는 등 for 루..
파이썬의 최고 장점 중 하나는 일관성이다. 파이썬으로 어느 정도 작업을 해본 이후에는 새로운 기능을 구현할 때에도 어느정도 예측이 가능하다. 다른 객체 지향 언어에서는 collection.len() 의 방식으로 함수를 사용하지만, 파이썬에서는 len(collection)이라고 사용하는 것이 크게 이상하지 않다. 챕터 1에서는 Pythonic(파이썬스러움)과 파이썬 데이터 모델에 대해 설명한다. 1. 아래는 collection 라이브러리를 이용해 Card 클래스를 정의한 코드이다. import collections Card = collections.namedtuple('Card', ['rank', 'suit']) 실제 업무에서 작업할때는 위 라이브러리를 거의 사용해본 적이 없는 것 같다. 알고리즘 문제 풀..