들어가기 전 이 글은 단단한 파이썬 9장 데이터 클래스를 공부하며 작성한 글입니다. 1. 데이터 클래스 데이터 클래스의 공식 문서는 이곳이다. 2. 데이터 클래스의 필요성 데이터 클래스는 자바 17부터 등장한 Record와 비슷한 역할을 한다. 클래스로 사용하기에는 좀 애매하고, 데이터끼리 묶어서 의미를 부여하고 싶을 때 사용한다. 그렇다면 파이썬 관점에서 필요한 이유를 다시 한번 살펴보자. # 분할된 데이터 name = 'tom' age = 2 # 하나로 묶은 데이터 person = ('tom', 2) 코드를 작성하다보면 여러 개의 데이터들을 하나의 데이터로 묶는 경우가 필요할 때가 있다. 위의 예시에서 name, age를 각각의 변수에 선언하는 것보다 person이라는 변수 하나에 묶는 경우가 가독성..
들어가기 전 이 글은 단단한 파이썬 5장을 공부하며 작성한 글입니다. 컬렉션의 어노테이션 def get_ages(humans: list): pass humans라는 매개변수가 주어지고, 이 매개변수가 list라는 타입 어노테이션을 봤다고 하자. 그렇다면 그 다음으로 우리가 할 수 있는 것은 무엇일까? list의 요소가 어떤 타입인지 알지 못한다면, 어떤 처리를 해야하는지나 어떤 메서드를 호출해야하는지 알 수 없다. 이것은 잠재적인 런타임 에러를 보여준다. class Human: def add(self): pass # list 컬렉션 요소로 어떤 타입이 오는지 타입 어노테이션 처리. def get_ages(humans: list[Human]): pass 위 코드처럼 list의 요소로 어떤 타입이 오는지를 ..
들어가기 전 이 글은 단단한 파이썬 4장을 공부하며 작성한 글입니다. 고급 타입 어노테이션 기본적인 타입 어노테이션만을 이용하는 것은 한계가 존재한다. 파이썬에서는 고급 타입 어노테이션을 제공하는데, 이것을 이용하면 좀 더 단단한 코딩을 할 수 있다. Optional : Union[None, 내 타입]을 의미함. Union : 여러 타입들이 선택될 수 있음을 의미 Literal : 개발자가 특정 값들만 사용하도록 제약 Annotated : 여러분의 타입에 추가적인 설명을 제공하고자 사용 NewType : 특정 상황에서 타입을 제한하고자 사용 Final : 불변 타입임을 알려줌. 아래에서는 하나씩 내용을 살펴보고자 한다. Optional 타입 Optional 타입을 정리하면 다음과 같다. Optional은..
들어가기 전 이 글은 단단한 파이썬 3장을 공부하며 작성한 글입니다. 타입 어노테이션이란? 타입 어노테이션은 변수, 반환 값의 타입을 알려줌. 타입 어노테이션은 런타임 동안 파이썬에 아무런 영향을 주지 않음. (비용이 들지 않음) 타입 어노테이션은 개발자에게 의도를 전달하는 용도로 사용됨. 타입 어노테이션을 남발하는 것은 좋지 않음. (간결함을 잃음) number: int = 0 같은 타입 어노테이션은 무의미함. def find_workers_available_for_time(open_time: datetime.datetime) -> list[str]: workers = get_all_workers() available_workers = [worker for worker in workers if is_a..
들어가기 전 이 글은 전문가를 위한 파이썬 7장을 공부하며 작성한 글입니다. 7.1 데코레이터 기본 지식 # 데코레이터 함수 선언 def deco(func): print(f'function Name = {func}') def inner(): print('running inner()') return inner # 데코레이터 기반 @deco def target(): print('running target()') # 데코레이터와 동일한 효과. target = deco(target) 파이썬에서 데코레이터는 다음과 같이 선언할 수 있다. 요약하면 다음과 같다. target 함수에 @deco를 붙이는 것은 target = deco(target)을 하는 것과 동일하다. py 파일을 Import 하는 시점에 @deco..