profile
어려운 문제를 함께 풀어가는 것을 좋아합니다.

[파이썬 코딩의 기술] 클래스

본 문서는 파이썬 코딩의 기술: Effective Python의 정리 내용입니다. 인용구문은 필자의 견해 또는 개인적인 궁금함을 담은 내용입니다. Better Way 22 - 딕셔너리와 튜플보다는 헬퍼 클래스로 관리하자 딕셔너리를 담는 딕셔너리는 최대한 피하자. 여러 계층이 중첩되면 코드 유지보수가 어려워진다. 관리가 복잡하다고 느끼는 즉시 클래스로 옮겨가야 한다. namedtuple 을 통해 가벼운 데이터 컨테이너를 선언할 수 있다. Better Way 23 - 인터페이스가 간단하면 클래스 대신 함수를 받자 파이썬의 hook 중 상당 수는 인수와 반환 값을 잘 정의해놓은상태가 없는 함수이다. 이는 파이썬의 함수는 일급객체이기 때문이다. > 일급 객체 더 알아보기 - [1급 객체(First-class citizen) 란? with Kotlin](https://medium.com/@lazysoul/functional-programming-%

2020년 10월 10일
·
0개의 댓글
·

[파이썬 코딩의 기술] 함수

본 문서는 파이썬 코딩의 기술: Effective Python의 정리 내용입니다. 인용구문은 필자의 견해 또는 개인적인 궁금함을 담은 내용입니다. Better Way 14 - None을 반환하기보다는 예외를 일으키자 특벼한 의미를 나타내려고 None을 반환하는 함수가 오류를 일으키기 쉬운 이유는 None이나 다른 값(0이나 빈 문자열)이 조건식에서 False로 평가되기 때문이다. > 때에 따라서 None을 리턴하는 것이 유용한 상황이 있다. 이럴 때는 해당 함수가 None을 반환 할 수 있음을 명시하자. ex) type hinting의 Optional Better Way 15 - 클로저가 변수 스코프와 상호 작용하는 방법을 알자 클로저(closure)란 자신이 정의된 스코프에 있는 변수를 참조하는 함수 함수는 파이썬에서 일급 객체, 일급 객체는 함수를 직접 참조하고, 변수 할당, 인수 전달 등이 가능하다. 파이썬에

2020년 9월 26일
·
0개의 댓글
·

[파이썬 코딩의 기술] 파이썬다운 생각

본 문서는 파이썬 코딩의 기술: Effective Python의 정리 내용입니다. 인용구문은 필자의 견해 또는 개인적인 궁금함을 담은 내용입니다. Better Way 1 - 사용중인 파이썬의 버전을 알자 command line sys module 파이썬에는 CPython, Jython, PyPy 같은 다양한 구현체가 존재 PyPy는 JIT를 도입해 성능을 올린 구현체 파이썬 공식 홈페이지에서 다운로드하면 CPyhon이 다운로드 된다. Better Way 2 - PEP 8 스타일 가이드를 따르자 https://www.python.org/dev/peps/pep-0008/ 참고 List, Dict 등 컨테이너 타입의 자료형은 값이 비어있으면 if문안에서 False를 리턴한다. Import는 표준 라이브러리 모듈, 서드파티 모듈, 자신이 만든 모듈 순으로 섹션을 구분한다. 파이썬 Lint tool 로는 pylint

2020년 9월 17일
·
0개의 댓글
·
post-thumbnail

[Python] 매직 메서드를 이용한 객체 간의 diff 구하기

개발을 하다보면 객체의 상태가 업데이트 될 때 변경 지점을 감지해야 되는 상황 등, 같은 타입 오브젝트 간의 차이(difference)를 감지해야 되는 상황이 자주 발생한다. 해당 타입이 dictioanry이거나 primitive type이면 쉽게 코드를 작성 할 수 있으나, 클래스의 인스턴스인 경우 조금 난감 할 수 있다. 객체가 프로퍼티로 다른 객체를 들고 있을 경우에는 정확한 변경 지점 파악이 어렵다. 이번 포스팅에서는 파이썬(Python)의 dict 를 통해 이를 간단하게 구현해 볼 예정이다. > dict는 해당 클래스의 프로퍼티 네임을 key로 값을 value로 가지는 dictionary를 리턴하는 매직 메소드이다. Codebase example 테스트 용도로 사용될 3가지 클래스를 정의해보자. 주문이라는 도메인을 가정하고 상품(product), 주문자(person), 주문(order) 세가지 클래스를 아래와 같이 정의한다. 주

2020년 6월 20일
·
0개의 댓글
·
post-thumbnail

GIL, Java에는 없던데?

GIL에 대해 조금 찾아보다 Java에서는 왜 GIL에 대한 개념이 없는지 궁금했다. Java 역시 세부적인 동작 방식에는 차이가 있지만 Python과 같이 인터프리터를 사용한다. 그럼에도 불구하고 Java를 공부할 때는 GIL에 대한 언급을 찾아볼 수 없었다. 이번 포스팅에서는 Java에는 GIL이 없는 이유에 대해 간단하게 알아보자. > Python은 언어에 대한 인터페이스이다. Python의 구현체로 Cpython, ironPython, Jython 등이 있으며, 이번 글은 Cpython을 중심으로 다룬다. ironPython과 Jytphon은 GIL 방식을 선택하지 않았다. GIL란? GIL은 Global Interpreter Lock의 줄임말로, Python Wiki에서는 다음과 같이 정의하고 있다. > In CPython, the global interpreter

2020년 5월 1일
·
1개의 댓글
·

Plot 3주차 - Curve, subplot

Sin Curve numpy.sin()에 x값을 인자로 넘겨주면 해당하는 y 값들을 리턴한다. Dotted Curve 스크린샷 2019-09-30 오전 11.14.49.png Read from Text Sub Plot 스크린샷 2019-09-30 오전 11.23.19.png sub plots two functions subplot의 개수는 add_subplot 메서드의 인자를 통해 조정할 수 있다. 다음 코드에서 (2, 1,

2019년 9월 30일
·
0개의 댓글
·

Plot 실습 3주차 - Scatter

Scatter 어떤 데이터의 특성이 있는가를 볼 때 사용, 만약 어떤 지역의 종교단체와 경제와 상관이 있는지 Scatter로 찍어보고 있다면 다른 그래프를 이용해 유추함 Scatter는 각각의 데이터가 독립적일 때 사용한다. 스크린샷 2019-09-30 오전 10.49.34.png Maker size color alpha 데이터와 같이 size와 color도 배열로 넘겨줄 수 있다. 스크린샷 2019-09-30 오전 10.54.14.png

2019년 9월 30일
·
0개의 댓글
·

Plot 실습 2 주차

Hist, overlapping 400.PNG // Todo n, bins, pathches 정리하기 Hist, Side by side 어떤 경우에 사용? 마드리드하고 부산의 온도를 비교할려고 해, 겹치는것 보다 1월에 몇도 2월에 몇도 각각 비교하는게 눈에 보기 좋음 410.PNG Double bar dobule bar.PNG //Todo yl

2019년 9월 25일
·
0개의 댓글
·

Plot 실습

이 글은 2019.09.11 공작발 수업 실습 내용입니다. 이 외에 필요한 내용은 교수님이 주신 Sample 파일 참고 Scatter - 점 cddf.PNG Plot - 선 그래프 dwqdw23.PNG 수식을 이용한 Plot dwdwdss.PNG SubPlot ![ew22.PNG](https://images.velog.io/po

2019년 9월 11일
·
0개의 댓글
·