Python(5)
-
Python Enum
파이썬 기본 내장으로 Enum이라는 모듈이 있습니다. 오늘은 이 모듈의 필요성과 사용법을 간단히 알아보죠. Enum을 사용했을 때 장점은 가독성, 유지보수 용이, 코드 안전성, 디버깅 정도가 있겠습니다. 가독성 상수값에 의미 있는 이름을 붙이면, 값을 하드코딩하는 경우보다 가독성이 높습니다. # Without enums def apply_discount(price, discount_type): if discount_type == 1: return price * 0.9 elif discount_type == 2: return price * 0.8 # With enums from enum import Enum class DiscountType(Enum): TEN_PERCENT = 1 TWENTY_PERCEN..
2023.05.02 -
파이썬 시퀀스의 저장방식 : 컨테이너 시퀀스와 플랫 시퀀스
파이썬을 설치하면 자동으로 설치되는 기본 객체(objective)가 몇 가지 있습니다. 특히, 리스트, 튜플 등은 정보의 나열이란 의미에서 시퀀스라고 부르죠. 구분 기준의 대전제가 있습니다. 프로그래밍 언어 객체가 저장되는 메모리 공간입니다. 내장 시퀀스는 크게 C언어의 저장방식을 기준으로 크게 두 가지로 나뉩니다. 컨테이너 시퀀스(contatiner sequence)와 플랫 시퀀스(flat sequence)로요. 컨테이너 시퀀스의 메모리로 가보죠. 컨테이너 시퀀스는 스마트폰의 저장된 번호목록과 같습니다. 저장된 번호의 누군가와 함께 거주하지 않는다면, 따로 약속 등을 통해서 만납니다. 플랫 시퀀스는 동거인과 같습니다. 동일한 집에서 함께 살죠. 메모리를 기준으로 변수를 조회해 보면, 컨테이너 시퀀스는 ..
2023.05.01 -
막힘없이 Python(파이썬) 하기 : 특별 메서드의 대표 예시
특별메서드를 활용하는 경우는 크게 4가지 정도로 볼 수 있습니다. 수치형 자료 흉내내기, 객체들의 문자열 표현, 객체의 논리형 값, collections 적용. 하나씩 살펴보죠. 수치형 자료 흉내내기 물리학과 수학에서 수치는 중요합니다. 수치 데이터를 흉내 내는 도구는 수학기반 모형을 다룰 때 매우 유용하겠네요. 벡터의 연산은 아래처럼 정의할 수 있습니다. class Vector: def __init__(self, x=0, y=0): self.x = x self.y = y def __add__(self, other): x = self.x + other.x y = self.y + other.y return Vector(x, y) __add__ 특별 메서드를 정의해 2차원 벡터의 덧셈을 모방하는 코드를 작성..
2023.04.25 -
막힘없이 Python(파이썬) 하기 : 파이썬 데이터 모델과 특별메서드의 개념
특정한 성질이 있다는 어휘를 '-스럽다'라고도 하죠. 파이썬의 특징도 파이썬스럽다(pythonic)라고 할 수 있겠네요. 놀랍게도, '파이썬스러움'은 단 몇 줄의 코드로 요약이 가능하다고 합니다. lst = ['RStudio', 'VScode', 'PyCharm', 'Git'] lst.len() len(lst) 객체지향언어는 통상 lst.len()처럼만 사용할 수 있지만, 파이썬은 len(lst)도 가능합니다. 파이썬스럽기 때문이죠. 이게 가능한 이유는 무엇이냐? 바로 파이썬 데이터 모델이라는 기능 덕분이라고 합니다! 파이썬 데이터 모델과 특별메서드 파이썬 데이터 모델이란 파이썬을 프레임워크로 보는 관점에서 생긴 개념인데요. 프레임워크란 개발자가 코드를 생성하거나 유지관리를 하는 과정에서, 효과적인 개발..
2023.04.23 -
[Fluent Python] 막힘없이 Python(파이썬) 하기 : 리뷰 계기
작년 1월쯤인가. 파이썬 실력을 갈구하는 나에게 누군가 'fluent python' 이라는 겁나 두꺼운 서적을 추천했다. 그 책을 교내 도서관에서 뒤적거려본 나는 혼자 감당하기엔 귀찮음 50% 두려움 50%으로 기억 속에서 지웠다. 작년 7월, 내게 좋은 계기가 찾아왔다. 이 책을 리뷰하는 데 초점을 둔 이라는 이름의 스터디가 만들어졌고, 기쁜 마음으로 참여했다. 스터디 내내 마음을 다해 참여하지 않았고, 스스로의 실력을 솔직히 인정하지 못했다. 이후 프로그래머스 코딩테스트 문제들을 접하며, 얼마나 중요한 지식들을 손가락 사이 물 흘리듯이 놓쳤는지 깨달았다. 뿐만인가. 저 책의 json 파일 로딩 코드는 이후 수많은 딥러닝 코딩을 하면서 엄청난 도움이 됐다. 당시 스터디에서 다루지 못한 내용이 꽤 있었고..
2023.04.22