10장. 오오: 객체와 클래스
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
신비로운 물체는 없습니다. 신비는 바로 당신의 눈입니다.
엘리자베스 보웬
개체를 가져옵니다. 무언가를 하세요. 다른 작업을 수행합니다.
재스퍼 존스
여러 페이지에서 언급했듯이 숫자부터 함수까지 Python의 모든 것은 객체입니다. 그러나 Python은 특별한 구문을 통해 대부분의 객체 메커니즘을 숨깁니다. num = 7을 입력하여 값이 7인 정수형 객체를 생성하고 num 이라는 이름에 객체 참조를 할당할 수 있습니다. 객체를 직접 만들거나 기존 객체의 동작을 수정하려는 경우에만 내부를 살펴봐야 합니다. 이 장에서는 두 작업을 수행하는 방법을 살펴볼 것입니다.
오브젝트란 무엇인가요?
객체는 데이터(변수, 속성)와 코드(함수, 메서드)를 모두 포함하는 사용자 정의 데이터 구조로, 구체적인 사물의 고유한 인스턴스를 나타냅니다. 객체는 명사, 메서드는 동사라고 생각하면 됩니다. 객체는 개별 사물을 나타내며, 메서드는 객체가 다른 사물과 상호 작용하는 방식을 정의합니다.
예를 들어, 값이7 인 정수 객체는 3장에서 살펴본 것처럼 덧셈과 곱셈과 같은 메서드를 용이하게 하는 객체입니다.8 은 다른 객체입니다. 즉, Python 어딘가에 7 과 8 이 모두 속하는 정수 클래스가 내장되어 있습니다. 문자열 'cat' 과 'duck' 도 Python의 객체이며 5장에서 살펴본 capitalize() 과 replace() 와 같은 문자열 메서드를 가지고 있습니다.
모듈과 달리 인스턴스는 잠재적으로 다른 속성을 가진 여러 개의 객체(흔히 인스턴스라고 함)를 동시에 가질 수 있습니다. 인스턴스는 코드가 삽입된 슈퍼 데이터 구조와 비슷합니다.
간단한 개체
기본적인 객체 클래스부터 시작하겠습니다. 상속과 관련된 내용은 몇 페이지에 걸쳐서 설명하겠습니다.
클래스로 클래스 정의
이전에 아무도 만든 적이 없는 새로운 객체를 만들려면 먼저 객체에 포함된 내용을 나타내는 클래스를 정의해야 합니다.
2장에서 객체를 플라스틱 상자에 비유했는데, 클래스는 그 상자를 만드는 틀과 같습니다. 예를 들어 Python에는'cat' 및 'duck' 과 같은 문자열 객체와 목록, 사전 등 다른 표준 데이터 유형을 만드는 클래스가 내장되어 있습니다. Python에서 사용자 정의 객체를 만들려면 먼저 class 키워드를 사용하여 클래스를 정의해야 합니다. 간단한 예제를 살펴봅시다.
고양이에 대한 정보를 나타내는 객체를 정의하고 싶다고 가정해 봅시다.1
각 객체는 고양이 한 마리를 나타냅니다. 먼저 Cat 이라는 클래스를 몰드로 정의합니다. 다음 예제에서는 가장 단순한 클래스부터 실제로 유용한 기능을 수행하는 클래스까지 이 클래스의 버전을 두 개 이상 만들어 보겠습니다.
참고
우리는 Python의PEP-8의 명명 규칙을 따르고 있습니다.
첫 번째 시도는 가능한 가장 간단한 클래스인 빈 클래스입니다:
>>>class ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access