도비LOG(跳飛錄)

도비의 AI 엔지니어 도전기

전문가파이썬 5

[전문가를 위한 파이썬] 6장 일급 함수 디자인 패턴 내용 정리

6.1. 사례: 전략 패턴의 리팩토링- 전략 패턴이란: 일련의 알고리즘을 정의하고 각각을 하나의 클래스 안에 넣어서 교체하기 쉽게 만든다. 전략을 이용하면 사용하는 클라이언트에 따라 알고리즘을 독립적으로 변경할 수 있다.  6.1.1. 고전적인 전략 - 전략 패턴의 예    - 아래의 할인 규칙을 가진 온라인 상점을 가정.        1. 충성도 포인트가 1,000 점 이상인 고객은 전체 주문에 대해 5% 할인 적용.        2. 하나의 주문에서 20개 이상의 동일 상품을 구입하면 해당 상품에 대해 10% 할인 적용        3. 서로 다른 상품을 10종류 이상 주문하면 전체 주문에 대해 7% 할인 적용        4. 하나의 주문에는 하나의 할인 규칙만 적    - 할인 전략에 따른 Ord..

Python 2024.06.02

[전문가를 위한 파이썬] 5장 일급 함수 내용 정리

일급 객체의 조건- 런타임에 생성할 수 있다.- 데이터 구조체의 변수나 요소에 할당할 수 있다.- 함수 인수로 전달할 수 있다.- 함수 결과로 반환할 수 있다. 5.1. 함수를 객체처럼 다루기- __doc__: 객체의 도움말 텍스트 출력def factorial(n): """returns n!""" return 1 if n - 함수를 변수에 할당할 수 있다.- map()의 인수로도 전달할 수 있다.- 일급 함수가 있으면 함수형 스타일로 프로그래밍할 수 있다. 5.2. 고위 함수- 고위함수(high-order function): 함수를 인수로 받거나, 함수를 결과로 반환하는 함수- 대표적으로 map(), sort(), sorted()가 있음. 5.2.1. map(), filter(), reduce()의..

Python 2024.05.29

[전문가를 위한 파이썬] 4장 텍스트와 바이트 내용 정리

4.1. 문자 문제- '문자'의 정의문자의 단위 원소(코드 포인트)는 10진수 0에서 1,114,111까지의 숫자이며, 유니코드 표준에서는 'U+' 접두사를 붙여 4자리에서 6자리 사이의 16진수로 표현한다. - 인코딩: 코드 포인트를 바이트 시퀀스로 변환하는 것- 디코딩: 바이트를 코드 포인트로 변환하는 것 - 즉, bytes는 저장이나 전송을 위한 기계 메모리 덤프이며, 유니코드 str은 사람이 읽을 수 있는 텍스트라고 생각할 수 있다.  4.2. 바이트에 대한 기본 지식- bytes: 불변형- bytearray: 가변형- bytes와 bytearray에 들어있는 각 항목은 0~255 사이의 정수. 4.2.1. 구조체와 메모리 뷰- struct 모듈은 패킹된 바이트를 다양한 형의 필드로 구성된 튜플로..

Python 2024.05.19

[전문가를 위한 파이썬] 3장 딕셔너리와 집합 내용 정리

3.1. 일반적인 매핑형collections.abc 모듈은 dict 및 이와 유사한 자료형의 인터페이스를 정의하기 위해 Mapping 및 MutableMapping 추상 베이스 클래스(ABC)를 제공한다.import collections my_dict = {} isinstance(my_dict, collections.abc.Mapping) # True표준 라이브러리형에서 제공하는 매핑형은 모두 dict를 이용해 구현하므로, 키가 해시 가능해야 한다는 제한이 있다. (값은 해시 가능해야 한다는 제한이 없다.)해시 가능하다는 의미: 수명 주기 동안 결코 변하지 않는 해시값을 갖고 있고, 다른 객체와 비교할 수 있다면 객체를 해시 가능하다고 한다. 동일하다고 판단되는 객체는 반드시 해시값이 동일해야 한다.3...

Python 2024.05.15

[전문가를 위한 파이썬] 1장 내용 정리

1장 파이썬 데이터 모델1.1. 파이썬 카드 한 벌특별 메서드로 파이썬 데이터 모델을 사용할 때의 장점사용자가 표준 연산을 수행하기 위해 클래스 자체에서 구현한 임의 메서드명을 암기할 필요가 없다.파이썬 표준 라이브러리에서 제공하는 풍부한 기능을 구현할 필요 없이 바로 사용할 수 있다.1.2. 특별 메서드는 어떻게 사용되나?예를 들어 우리는 특별메서드를 my_object.__len__()으로 직접 호출하지 않고, len(my_object) 형태로 호출한다.종종 특별 메서드가 암묵적으로 호출된다. 예를 들어, for문의 경우 실제로는 iter(x) 를 호출하며, 이 함수는 다시 x.__iter__() 를 호출한다.1.2.1. 수치형 흉내내기__repr__(), __abs__(), __add()__, __m..

Python 2024.05.01