def 키워드를 사용하여 함수를 정의하는 방법과 유사한 클래스 키워드를 사용하여 클래스를 정의합니다. 이제 f, g 및 h는 함수 개체를 참조하는 클래스 C의 모든 특성이며, 결과적으로 C 인스턴스의 모든 메서드입니다 . 또한 파이썬 키워드 패스를 여기에 사용했습니다. 이것은 코드가 결국 갈 자리 홀더로 매우 자주 사용됩니다. 그것은 우리가 오류를 throw 하지 않고이 코드를 실행할 수 있습니다. 러셀테리어를 불독과 구별하기 위한 특별한 속성이나 방법을 추가하지는 않았지만, 이제 는 두 개의 다른 병과이기 때문에 각 기수를 정의하는 다른 클래스 속성을 제공할 수 있습니다. 로켓 클래스는 이제 몇 가지 정보를 저장할 수 있으며, 뭔가를 할 수 있습니다. 그러나이 코드는 실제로 아직 로켓을 만들지 않았습니다. 실제로 로켓을 만드는 방법은 다음과 같습니다: 이러한 각 개체는 개별적으로 작업할 수 있습니다. 이 시점에서 우리는 이동하고 로켓 클래스에 더 많은 기능을 추가하는 방법을 볼 준비가되어 있습니다.

우리는 천천히 작동하고, 당신에게 당신의 자신의 간단한 클래스를 작성을 시작할 수있는 기회를 제공 할 것입니다. 자기 키워드는 종종 사람들이 이해하는 데 약간의 시간이 걸립니다. « self »라는 단어는 작업 중인 현재 개체를 나타냅니다. 클래스를 작성할 때 클래스의 다른 부분에서 특정 특성을 참조할 수 있습니다. 기본적으로 클래스의 모든 메서드는 self object를 첫 번째 인수로 사용하므로 클래스의 일부인 모든 특성에 액세스할 수 있습니다. 동작은 클래스 내에서 정의된 작업입니다. 이러한 메서드는 클래스에 대해 정의된 함수로 구성됩니다. Python에서 이의제기 지향 프로그래밍에 대한 자세한 설명을 보려면 이러한 추가 리소스를 참조하는 것이 좋습니다. 클래스의 인스턴스는 다양한 값을 가지므로 self.name = 이름대신 Dog.name = 이름을 지정할 수 있습니다.

그러나 모든 개가 같은 이름을 공유하는 것은 아니기 때문에 다른 인스턴스에 다른 값을 할당 할 수 있어야합니다. 따라서 각 클래스의 개별 인스턴스를 추적하는 데 도움이되는 특수 자기 변수가 필요합니다. 클래스는 개체를 만들기 위한 코드 템플릿입니다. 개체에는 멤버 변수가 있으며 개체와 연결된 동작이 있습니다. 파이썬에서 클래스는 키워드 클래스에 의해 만들어집니다. 생성기는 이터레이터를 만들기 위한 간단하고 강력한 도구입니다. 일반 함수처럼 작성되지만 데이터를 반환할 때마다 yield 문을 사용합니다. 다음()이 호출될 때마다 생성기는 중단된 위치에서 다시 시작됩니다(모든 데이터 값과 마지막으로 실행된 문을 기억함). 예를 들어 생성기가 간단하게 만들 수 있음을 보여 주며 이름 mangling은 하위 클래스가 intraclass 메서드 호출을 중단하지 않고 메서드를 재정의하도록 하는 데 유용합니다. 예를 들어(클래스에 대해 이야기할 수 있는 보편적으로 허용되는 용어가 부족하기 때문에 Smalltalk 및 C++ 용어를 가끔 사용합니다. 객체 지향 의미체계가 C ++보다 파이썬에 더 가깝기 때문에 Modula-3 용어를 사용할 것이지만 독자가 들어 본 적이 없을 것으로 기대합니다.) 인스턴스화는 클래스의 새롭고 고유한 인스턴스를 만드는 멋진 용어입니다. 클래스를 도입하기 전에 먼저 파이썬의 범위 규칙에 대해 알려주어야합니다.

클래스 정의는 네임스페이스를 사용하여 몇 가지 깔끔한 트릭을 재생하며, 무슨 일이 일어나고 있는지 완전히 이해하기 위해 범위와 네임스페이스가 어떻게 작동하는지 알아야 합니다. 덧붙여, 이 주제에 대한 지식은 고급 파이썬 프로그래머에게 유용합니다. 클래스 인스턴스화는 함수 표기기능을 사용합니다. 클래스 개체가 클래스의 새 인스턴스를 반환하는 매개 변수없는 함수인 것처럼 가장하십시오. 예를 들어(위의 클래스가정): Dog() 클래스의 경우 각 반려견의 이름과 나이는 특정한 이름으로, 실제로 다른 개를 만들기 시작할 때 알아야 할 것이 분명합니다.