본문 바로가기

전체 글92

python lambda lambda는 함수를 딱 한줄로 표현할 수 있는 문법이다. 별도의 함수로 정의하지 않고 필요할 때 정의해서 사용할 수 있으며, 특히 함수의 인자에 함수의 리턴 결과를 넣을 때 간단하게 사용가능하다. 함수를 정의해서 두고두고 쓰는것이 아니라 일회성으로 사용할 때 용이하다. 사용법: lambda 인자: 표현식 이렇게만 보면 뭔줄 모른다. def add(a, b): return a + b add(10, 20) 위의 간단한 덧셈함수를 람다를 사용하여 표현하면 (lambda a,b: a + b)(10, 20) lambda식을 해석해보자면 '인자 a, b를 받아 a+b 로 처리한다' 고 하면 될 것 같다. 또는 아래와 같이도 사용할 수 있다. addition = lambda a, b: a+b print(additi.. 2021. 3. 21.
python 소멸자 Python class 소멸자 소멸자는 class 내에서 아래와 같이 작성한다. class className: def __del__(self): 내용~~~~ 보통 소멸자를 호출할 때 사용법을 del className 위와 같이 알고있고, 나도 그렇게 알고있었다. (나만 그렇게 알고있던거 아닐까?;;) 소멸자가 호출되는 정확한 시점은 위와같이 del을 호출했을 때가 아니라, 실제로 객체가 모두 소멸되는 시점에 callback으로 호출된다. 그러므로 객체를 소멸시킬 때 작업을 다 해놓고, 소멸자에서 마무리 작업을 하도록 구현하는 것이 좋다. 원하는 시점에 소멸자의 호출이 안돼서 삽질했음. 2021. 3. 11.
Python에서의 Multiprocessing python에서 cpu core를 여러 개 사용하고자 한다면 threading의 Thread 모듈로는 불가능하다. 그 이유는 python의 GIL(Global Interpreter Lock)정책 때문이다. 여러 개의 쓰레드가 공유자원에 접근하여 값을 변경하는 시도를 할 때 결과가 제대로 반영되지 않는 문제가 발생할 수 있다. 이 문제를 race condition이라고 한다. python에서는 reference counting을 하여 메모리관리를 한다. 어떤 자원 하나에 접근할 때마다 reference 횟수를 증가시켜 체크한다. 함수에 var라는 변수를 넣을 때도 참조를 하므로 reference count를 증가시키고, 반대로 함수가 끝나면 reference count를 감소시킨다. 이런 식으로 진행하다가.. 2021. 3. 9.
tesseract 트레이닝 문자인식을 할 때 사용하는 툴 tesseract는 다운로드받은 상태 그대로 사용하면 인식률이 매우 좋지않다. 얘를 트레이닝 시켜줘서 인식률을 높일 수 있다. jTessBoxEditor를다운로드한다. https://softfamous.com/jtessboxeditor/download/ 적당한곳에 저장하여 압축을 풀어준다. 실행시키기 전에 먼저 메모장에 트레이닝 시킬 글자를 입력한다. 지난번에 인식에 실패한 그 차번호에 있던....'하' 여기서 TIFF/Box Generator 탭 클릭 -> Input 버튼 클릭하여 앞에서 입력한 트레이닝 문자 파일을 불러온다. 불러오면 아래처럼 나옴. output파일은.. 일단 걍 두고, 옆의 eng를 kor로 바꿔준다. jTessBoxEditor window를 옆으로 늘.. 2021. 1. 10.
[커피머신] 내돈내산 Nespresso VERTUO Plus 커피머신을 구입했다고 신이 나서 블로그에 올린다. 커피머신을 구입한 이유는 딱 하나. 귀찮아서. 커피 마시고 싶을 때 사러 나가기도 멀고, 집에 있는 분말커피머신은 청소하기 매우 귀찮. 컵올려두고 물이랑 캡슐넣으면 끝나는 캡슐커피머신이 머릿속에 들어있었는데, 펜트하우스에 버츄오 광고가 너무 적나라하게 나오는 바람에 구매욕구가 치솟음... 알아봤더니 연말할인행사 한다고 하여 백화점으로 직행했다. 할인해준다기에 캡슐100개세트도 함께 구매해버렸다. 신나서 마구 뜯어댔더니 이렇게 널부러졌다. 웰컴기프트 캡슐세트. 머신을 사면 기본적으로 제공해준다. 기존의 nespresso 기기와는 호환이 되지 않는 모양이다. 그 이유는 캡슐에 바코드가 있어서 그런 것 같다. 캡슐을 넣으면 머신에서 바코드를 읽어, 캡슐에 맞게.. 2020. 12. 26.
BLE(Bluetooth Low Energy) Bluetooth 4.0 이후부터 사용 가능한 BLE는 이전 버전보다 훨씬 적은 전력으로 통신할 수 있는 프로토콜이다. 일단 BLE에는 세가지 모드가 있다. classic, smart ready, smart. 세 가지 모드의 BLE들의 관계를 아주 잘 표현한 그림이다. 블루투스의 communication mode는 두 가지가 있다. Advertise(Broadcast) 모드와 Connection 모드. Advertise mode는 signal을 받는 디바이스를 특정하지 않고 모두에게 전송하는 모드. 1:N 통신이 가능하다. Connection mode는 1:1 통신을 할 수 있으며, Advertise mode보다 안전하다. 여기에서는 connection 모드만 자세히 알아본다. Connection모드 관.. 2020. 12. 23.