Iterator 인터페이스는 느긋하게 처리하도록 설계 되어 있고, next는 한 번에 한 항목만 생성하고, 느긋한 계산법의 반대는 조급한 계산법이고, 둘 다 프로그래밍 언어 이론에서 실제 사용되는 용어이다.init()에서 텍스트 안에 있는 단어들의 리스트를 조급하게 생
동일한 기능을 파이썬스럽게 구현하려면 SequenceIterator 클래스 대신 제너레이터 함수를 사용한다.Sentence 코드에서iter—( )는 SentenceIterator ( ) 생성자를 호출해서 반복자를생성하고반환했다. [예제 14-5] 의 반복자는사실 제너레
Sentence 클래스의 다음 버전은 고전적인 반복자 패턴에 맞춰 구현하고, 리팩토링하면서 명확해지지만, 파이썬의 관용적인 방법은 아니다.iter() 특별 메서드를 구현하고 있고, 이 메서드가 SentenceIterator를 반환하기 때문이다.
반복형iter() 내장 함수가 반복자를 가져올 수 있는 모든 객체와 반복자를 반환하는 iter() 메서드를 구현하는 객체는 반복형으로 0에서 시작하는 인덱스를 받는 .getitem() 메서드를 구현하는 객체인 시퀀스반복형과 반복자의 관계를 명확히 하는 것이 중요하고 파
데이터를 처리할 땐 반복은 기본이며 메모리에 다 들어가지 않는 데이터셋을 검색할 때는 항목들을 느긋하게 가져와야 하므로 한 번에 하나씩 필요할 때 가져와야 합니다.(반복자 패턴)파이썬은 리스프와 달리 매크로가 없기에 반복자 패턴을 추상화할 수 있게 yield 키워드가
클래스가 인플레이스 연사자를 구현하지 않으면, 복합 할당 연산자는 단지 편의 구문으로서, a += b를 정확히 a = a +b와 동일하게 평가하고, 가변형의 경우 이렇게 동작하는 것이 타당하므로, add() 메서드가 구현되어 있으며 아무런 코드를 추가하지 않고도 +=
Vector 피연산자를 이용해서 곱하는 또 다른 방법은 두 벡터의 내적을 구하는 스칼라곱으로 현재 Numpy 및 이와 유사한 라이브러리에선 \*연산자를 사용하는 경우, 벡터의 각 항목에 값을 곱하며, 벡터의 스칼라곱을 구하기 위해서 numpy.dot()함수 사용
리눅스 환경 구축 - WSL활성 윈도우 WSL을 이용해서 구축해 보기커멘드(관리자)창을 통해서 리눅스 서브시스템 지원 활성화WSL 2를 사용하기 위해 윈도우 업데이트 설치dism.exe /online /enable-feature /featurename:Microsoft
단항 연산자는 self 인수 하나를 받는 적절한 특별 메서드를 구현하기에ㅔ 쉽다. 물론, 클래스에 논리적으로 합당한 연산을 수행해야 하므로 self를 수정하지 말고 적절한 자료형의 객체를 새로 생성해서 반환해야 한다.단적으로, +와-인 경우 결과는 아마도 self와 같
데이터를 처리할 때 반복은 기본이고, 메모리에 들어가지 않는 데이터셋을 검색할 때는 항목들을 느긋하게 가져와야 하고, 한 번에 하나씩 그리고 필요할 때 가져와야 하고 이것을 하는 것이 반복자 패턴입니다.iter() 내장함수객체가 iter() 메서드를 구현하는지 확인하고
객체 내용을 변경하는 연산자를 보여주기 위해서 BingoCage 클래스를 확장해서 add와 iadd()를 구현(새로운 서브클래스: AddableBingoCage)AddableBingoCage는 가변형이다.두 번째 피연산자의 측면에서 보면 += 연산자가 + 연산자보다 자
파이썬 인터프리터가 ==, != ,> , <, >=, <= 비교 연산자를 다루는 방법은 앞에서 설명한 방법과 비슷하다.
Vector 피연산자를 이용해서 곱하는 또 다른 방법은 두 벡터의 내적을 구하는 스칼라곱으로 Numpy및 이와 유사한 라이브러리에서는 \* 연산자를 사용하는 경우, 벡터의 각 항목에 값을 곱하며, 벡터의 스칼라곱을 구하기 위해서 numpy.dot()함수를 사용한다.sc
시퀀스의 결합을 위해서 + 연산자를, 시퀀스의 반복을 위ㅐ서는 \* 연산자를 지원해야 한다.길이가 다른 두 개이 Vector 객체를 더하면, 에러가 생길 수 있으나 정보 검색등에서 활용되는 사례를 보면, 짧은 쪽 벡터의 빈 공간을 0으로 채워서 더하는 것이 낫다.
세 개의 단항연산자 및 이 연산자와 연관된 특별 메서드는 같다.abs() 내장 함수는 abs() 특별 메서드와 연관이 되어 있고, 단항 연산자는 구현이 쉬우며 self 인수 하나를 받는 적절한 특별 메서드를 구현하면 된다.클래스에 논리적으로 합당한 연산을 수행하지만,
연산자 오버로딩은 사용자 정의 객체가 +와 | 같은 중위 연산자, -와 ~같은 단항 연산자를 사용할 수 있게 해주고, 함수 호출, 속성 접근, 항목 접근/슬라이싱도 연산자로 파이썬에 구현되어 있다.잘 사용하면 코드의 가독성이 향상되고 만족스러운 API를 구현할 수 있으
제너릭뷰는 검색 엔진의 검색 결과에선 자세한 정보 페이지에 대한 링크를 여러 페이지에 걸쳐 나열하는데, 장고의 리스트 뷰와 상세 뷰는 이러한 문제를 해결하기 위해서 설계가 되었고, 리스트 뷰는 검색 결과를 보여주고, 상세 뷰는 각 항목에 대한 페이지를 생성한다.그러므로
인터페이스 상속과 구현 상속을 구분한다.인터페이스 상속은 'is-a'관계를 의미하는 서브타입을 생성구현 상속은 재사용을 통해 코드 중복을 피한다.ABC를 이용해서 인터페이스를 명확히 한다.코드를 재사용하기 위해 믹스인을 사용한다.믹스인 클래스로 객체를 생성하면 안되며,
collections.abc 패키지를 통해서 다중 상속을 많이 사용하고, Tcl/Tk에 대한 파이썬 인터페이스로서 tkinter 모듈에 구현된 Tkinter GUI 툴킷은 표준 라이브러리에 다중 상속을 극단적으로 사용하는 예이다.Toplevel시각적 위젯 중 유일하게