본문 바로가기

개발/파이썬5

일급객체란? https://blog.hexabrain.net/347 일급객체란, 다른 객체들에서 일반적으로 쓰는 연산을 지원하는 객체를 말합니다. 따라서 일급객체는 다른 객체에 인자로 넘겨지거나 반환값으로 사용될 수 있으며, 파이썬의 함수는 일급객체, 즉 일급함수로 사용됩니다. 객체 안에 다른 객체가 정의될 때 지역변수가 선언되면 전역으론 쓸 수가 없습니다. def func1(arg1): global arg2 return arg1 + arg2 arg2 = 1 print(func1(2)) # 3 지역에서 선언된 변수를 전역에서 쓰려면 위처럼 global을 선언해야 하는데, 당연히 어떻게 정의됐는지 불분명한 변수를 코드 스코프 전체에서 쓰면 불안정합니다. 이를 해결하기 위해 클로저를 쓸 수 있습니다. 클로저란, 반환값으.. 2022. 9. 13.
NumPy & Pandas 자주 쓰는 문법 요약 빅데이터분석기사 실기 시험을 준비하면서, NumPy와 Pandas에서 자주 쓰는 문법들을 요약해 외우고자 cheatsheet처럼 정리해보았습니다. 문법과 그에 따른 결과를 최대한 한 줄로 보기 쉽게 만들었습니다. NumPy import numpy as np a1 = np.array([[1, 2, 3], [4, 5, 6]]) print(a1) # [[1 2 3] [4 5 6]] print(a1.shape) # (2, 3) print(a1.ndim) # 2 ## Array a2 = np.arange(1, 20, 3) # [1 4 7 10 13 16 19] a3 = np.zeros((2, 3)) # [[0. 0. 0.] [0. 0. 0.]] a4 = np.ones((3, 2)) # [[1. 1.] [1. 1... 2022. 9. 13.
Python logging & logger 모듈 회사에서 일하다가 logging이 부족한 것 같아서 공부했습니다. logging을 그냥 사용하면 logging.debug, logging.info, logging.warning, logging.error, logging.critical만 반복적으로 사용하게 됩니다. 하지만 logging.StreamHandler, logging.FileHandler, logging.getLogger, logging.Formatter를 잘 쓰면 전혀 다른 편-안함을 느낄 수 있었습니다. 예시는 아래와 같습니다. class BlahBlah: def __init__(self, logger): self.logger = logger def say_blah(self, something: str): logger.debug(f"say .. 2022. 9. 13.
Pyreverse, Python 다이어그램 diagram 패키지 소프트웨어공학에서 UML (Unified Modeling Language) 파트를 보면, 제일 핵심 파트는 역시 클래스 다이어그램 (class diagram) 파트입니다. 하지만 PPT로 다이어그램 하나하나 짜다보면 현타가 오기 마련ㅠㅠ 그럴 때 사용할만한 패키지가 Pyreverse입니다. 얘는 Pylint, code 맞춤법 프로그램에 내장되어 있어서 독립된 document도 없는데, 한국어로 써져있는 블로그도 하나? 인가 있었던 것 같습니다. (물론 내가 깔끔하게 사용법 정리를 할 마음은 없지만.) 그래도 간단하게 사용법을 정리하자면, 우선 저는 pylint를 vscode에서 extension으로 설치하거나, $ pip install pyreverse 로 설치했습니다. 간단한 사용법은 $ pyrever.. 2022. 9. 13.
Radon, Python code metrics 평가 도구 https://radon.readthedocs.io/en/latest/ 파이썬 코드를 짜고 프로그램을 만들다 보면, 과연 내가 프로그램을 잘 만들었나, 고민이 되는 순간이 많습니다. PEP8에 따라서 열심히 만들었다지만, 그래도 이쁜 코드랑 튼튼한 코드는 다르니까 정량적으로 내 프로그램의 잘 만든 정도를 평가하고 싶어집니다. 보통 시간복잡도 등을 이용해서 열심히 코드 하나하나 분석을 해서 코드 복잡도를 평가하는데, 이럴 때 사용하는 평가 방법을 code metrics 라고 합니다. 암튼 이 code metrics를 python code 대상으로 평가해주는 package가 바로 제일 위 링크의 Radon. Radon에서는 아래 4가지 방법으로 코드를 평가하는데요, Raw Metics: LOC, 주석 등 고.. 2022. 9. 13.