옮긴이 머리말 xii
베타리더 후기 xiv
감사의 글 xvi
이 책에 대하여 xviii
PART I 객체지향 프로그래밍이란
CHAPTER 1 예제로 알아보는 절차적 파이썬 3
1.1 카드 게임 Higher or Lower 4
__1.1.1 데이터 표현하기 4 / 1.1.2 구현하기 4 / 1.1.3 재사용할 수 있는 코드 7
1.2 은행 계좌 시뮬레이션 7
__1.2.1 업무와 데이터 요구 사항 분석 8 / 1.2.2 구현 ⑴: 함수 없이 다루는 단일 계좌 8 / 1.2.3 구현 ⑵: 함수로 다루는 단일 계좌 10 / 1.2.4 구현 ⑶: 두 계좌 13 / 1.2.5 구현 ⑷: 리스트로 다루는 다중 계좌 15 / 1.2.6 구현 ⑸: 딕셔너리로 다루는 계좌 목록 17
1.3 절차적 구현이 겪는 공통 문제 20
1.4 객체지향적 해결책: 첫 클래스 보기 21
1.5 정리 22
CHAPTER 2 OOP로 물체 모델링하기 23
2.1 소프트웨어로 물체 모델링하기 23
__2.1.1 상태와 행동: 조명 스위치 예 24
2.2 클래스와 객체 25
2.3 클래스, 객체, 객체의 생성 27
__2.3.1 파이썬 클래스 코드 작성 28 / 2.3.2 스코프와 인스턴스 변수 29 / 2.3.3 함수와 메서드의 차이 30 / 2.3.4 클래스로 객체 생성하기 31 / 2.3.5 객체의 메서드 호출하기 32 / 2.3.6 같은 클래스로 여러 객체 생성하기 33 / 2.3.7 클래스로 구현된 파이썬의 데이터 유형 35 / 2.3.8 객체 정의 36
2.4 조금 더 복잡한 클래스 정의하기 36
2.5 훨씬 더 복잡한 현실적인 물체를 클래스로 표현하기 39
__2.5.1 메서드에 매개변수 전달하기 44 / 2.5.2 여러 객체 다루기 46 / 2.5.3 매개변수의 초기화 48
2.6 클래스의 활용 사례 50
2.7 객체지향적 해결책 51
2.8 정리 51
CHAPTER 3 객체의 멘털 모델과 SELF의 의미 53
3.1 Dimm
게임을 만들며 시각적으로 익히는 객체지향 프로그래밍
파이썬 언어의 기본 문법을 공부했다면 본격적인 프로그래밍에 들어가기 전에 컴퓨터 프로그래밍의 패러다임에 대해 생각해볼 차례다. 이 책에서는 절차적 프로그래밍으로 작성된 몇 가지 예제로 프로그램의 복잡성을 인지한 후 객체지향 프로그래밍이 어떻게 더 간결하고 관리하기 쉽게 프로그램을 바꾸는지 살펴본다. 책의 가장 큰 특징은 파이게임과 GUI로 객체지향 사고를 시각적으로 표현한 데 있다. 코드로만 이해하기 어려운 부분을 시각적으로 표현하여 자연스럽게 객체지향 프로그래밍을 익히도록 구성했다. 초반부에서는 일상생활에서 접하기 쉬운 간단한 예제로 객체지향 프로그래밍의 핵심 요소를 배운다. 조명 스위치, TV 리모컨, 은행 시스템 시뮬레이션 등을 구성해보면서 클래스와 객체부터 객체 관리자 개념까지 객체지향 프로그래밍의 기본 개념을 이해한다. 중반부에서는 파이게임과 GUI로 이벤트 기반 프로그래밍을 실습한다. 공 튀기기 프로그램, 풍선 터뜨리기 게임 등을 만들면서 캡슐화, 다형성, 상속 등 객체지향 프로그래밍의 핵심을 익힌다. 후반부에서는 절차적 프로그래밍으로 만든 카드 게임을 객체지향 프로그래밍으로 재구성해보고, 슬라이더 퍼즐, 가위바위보, 회피 게임 등 애니메이션과 사운드까지 포함한 완성된 프로그램을 만들어본다. 파이썬 기초를 끝내고 작은 프로그램을 만들어봤다면 더 복잡하고 큰 프로그램을 만들고 싶을 것이다. 복잡한 로직을 구현하다 보면 좀 더 간결하고 효과적인 코드가 필요해진다. 코드와 데이터를 효율적으로 결합해 재사용할 수 있는 프로그램을 작성하게 해주는 객체지향 프로그래밍에 대해 배우고 싶다면 이 책을 읽어보자.
주요 내용
- 캡슐화, 다형성, 상속 등 객체지향 프로그래밍의 핵심 요소 살펴보기
- 객체 관리자 객체를 사용하여 여러 객체 생성 및 관리하기
- 파이게임으로 GUI 프로그램 만들기
- 캡슐화를 사용하여 클라이언트 코드에서 객체 내부의 세부 정보 숨기기
- 다형성을 사용하여 하나의