[Python] 쉽게 쓰여진 Decorator

오픈소스나, 다른 사람들이 만든 코드를 재수정한 코드, 제가 짠 코드에 대해 다양한 디버깅과 좀 더 다른 기능을 추가하고 싶을 때, 우리는 Decorator 를 자주 접하게 됩니다. Python 실력을 한층 업그레이드 하기 위함과, 코딩의 또 다른 목적이이 귀차니즘의 해결 이라고 생각할 때 Decorator 에 대한 이해는 그 시작 관문이 됩니다. 이번 글에서는 이 Decorator 에 대한 개념을 쉽게 설명하려고 노력하였습니다.

Read more

[Python] 볼 때마다 헷갈리는 Iterable, Iterator, Generator 정리하기

Iterable vs Iterator vs Generator


다른 분들의 코드를 읽을 때마다, 내가 사용할 때마다, 헷갈리는 Iterable, Iterator, Generator를 이번 글을 작성해보면서, 마지막으로! (라는 다짐으로) 정리해봅니다. 잘 알고 있는 개념이라고 생각했지만, 다른 사람들로부터의 질문을 받았을 때, 나의 설명이 만족스럽지 못해 ‘아 내가 더 정확히 알아야 한다’ 는 메타인지로부터 출발하는 글입니다.

Read more

Thread

Thread

공부한 내용을 스스로 보기 쉽게 정리한 글입니다.

  • 파이썬 기본 : Single Thread (Main Thread)

  • threading 모듈 : main thread에서 subthread 를 생성하여 진행하는 방식

  • multiprocessing 모듈 : double cpu

  • ThreadPoolExecutor : API - 멀티스레드와 멀티프로세스 동일한 형태로 디자인(Pool 클래스만 변경하면됨)

threading.Thread() arguement

1
2
3
4
5
Thread(group=, target=, args= , kwargs=, *, daemon=None)
#target= : 실제 스레드에서 돌아가게 될 함수
#args= : tuple 로 target 함수에 들어가게될 argument
#kwargs= : dictionary로 target 함수에 들어가게될 argument
#daemon : 데몬 스레드로 돌아갈지 여부
1
2
3
4
5
#Thread 의 메소드
start(): #스레드의 실행, self 의 run() 메소드를 호출
run(): #스레드가 실제로 수행하게될 작업
name : #스레드의 이름
threading.locals() : #해당 스레드 내부에서 사용할 로컬 변수 지정