오늘 TIL 3줄 요약
- 파이썬이 왜 코테에 유리한가(코드잼, 카카오 공채 응시 언어별 통계로 확인)
- 파이썬과 다른 언어들의 반복문, 구조체, 클래스 구현
- 구조체, 동적 타이핑 언어, 제네릭 프로그래밍이란?
- 파이썬의 인덴트는 공백 4칸(PEP 8)
- 좋은 코드는 얼핏 쳐다 보기만해도 향기가 난다.
TIL (Today I Learned) 날짜
- 2022.07.14 THU
오늘 읽은 범위
- 파이썬알고리즘인터뷰(상길북)1~3장
책에서 기억하고 싶은 내용을 써보세요.
파이썬은 동적 타이핑 언어로 사용하기엔 매우 편하지만, 타입을 명시하지 않으면 가독성을 낮추고 버그 발생 확률이 높아진다.
# 타입을 명시하는 예 from typing import TypeVar # 파이썬의 typing 내장 패키지가 파이썬을 정적 타입으로 만들어주지는 않는다. # 그러나 코드 상에 타입을 명시할 수 있고, 에디터 레벨에서 경고를 띄워주는것이 가능. T = TypeVar('T') U = TypeVar('U') def are_equal(a:T, b:U) -> bool: return a == b are_equal(10, 10.0)
파이썬에는 구조체가 없어 네임드튜플을 사용하거나 dataclass 데코레이션(3.7이후)을 사용해 구조체 형태로 정의할 수 있다
# python 3.7+ from dataclasses import dataclass @dataclass # 클래스를 구현할때 데이터 클래스를 선언해주면 여러 내부 함수의 기능도 자동으로 구현가능 class Product: weight: int = None price: float = None # 타입 힌트와 함께 사용 apple = Product() apple.price = 10
- 가독성을 위해 람다, 리스트 컴프리헨션 등 표현식은 2개를 넘지 않아야 한다.
- 제너레이터는 루프의 반복 동작(iteration)을 제어할 수 있는 루틴 형태.
- 제너레이터를 쓸 때 yield 구문을 사용하면 return과 달리 실행 중이던 값을 내보내고, 함수의 끝까지 실행된다.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
람다표현식에 map이나 filter를 사용하는 것이 더 능숙해보이고 어려워보였는데,
정작 리스트 컴프리헨션을 이용하는게 가독성이 높다는 점이 인상적이다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
제네릭 프로그래밍(영어: generic programming)은 데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입들을 가질 수 있는 기술에 중점을 두어 재사용성을 높일 수 있는 프로그래밍 방식이다.
즉 클래스를 정의 할 때는 데이터 타입을 확정하지 않고 인스턴스를 생성할 때 데이터 타입을 지정하는 기능이 제네릭이다. 이를 통해 중복의 제거와 타입 안정성의 추구가 가능해진다.
또한 자바와 같은 컴파일 언어의 경우 실행중 런타임 에러를 맞는것보다, 컴파일 단계에서 에러를 내는것이 안전한데, 제네릭의 사용은 이를 가능하게 해준다.
'개발 > 북TIL' 카테고리의 다른 글
[북TIL] 파이썬알고리즘인터뷰 6. 문자열 조작 (0) | 2022.07.27 |
---|---|
파이썬 알고리즘 인터뷰 5장 리스트, 딕셔너리 (0) | 2022.07.20 |
[북TIL] 실용주의 프로그래머 4. 실용주의 편집증 (0) | 2022.05.20 |
[북TIL] 실용주의 프로그래머 3. 기본도구 (0) | 2022.05.18 |
[북TIL] 실용주의 프로그래머 2장 (0) | 2022.05.15 |