객체 지향의 가장 중요한 개념은 클래스와 인스턴스입니다. 클래스는 Student 클래스와 같은 추상 템플릿이고, 인스턴스는 클래스를 기반으로 생성된 특정 "객체"라는 점을 기억해야 합니다. 방법이 있지만 데이터는 다를 수 있습니다.
Student 클래스를 예로 들면 Python에서 클래스 정의는 클래스 키워드를 통해 이루어집니다.
class Student(object): pass
class 뒤에는 클래스 이름이 옵니다. 클래스 이름은 일반적으로 대문자로 시작하는 단어입니다. (object)는 클래스가 상속되는 클래스를 나타냅니다. 상속의 개념에 대해서는 나중에 설명하겠습니다. 일반적으로 적합한 상속 클래스가 없으면 결국 모든 클래스가 사용하게 되는 클래스입니다. 상속.
Student 클래스를 정의한 후 Student 클래스를 기반으로 Student 인스턴스를 생성할 수 있습니다. 인스턴스 생성은 클래스 이름 + ()를 통해 수행됩니다.
>>> bart = Student() >>> bart <__main__.Student object at 0x10a67a590> >>> Student <class '__main__.Student'>
변수 bart가 Student 객체를 가리키는 것을 볼 수 있습니다. 다음 0x10a67a590은 메모리 주소입니다. 각 객체의 주소는 다르며 Student 자체는 클래스입니다.
속성을 자유롭게 인스턴스 변수에 바인딩할 수 있습니다. 예를 들어 이름 속성을 인스턴스 bart에 바인딩할 수 있습니다.
>>> bart.name = 'Bart Simpson' >>> bart.name 'Bart Simpson'
클래스가 템플릿 역할을 할 수 있으므로 인스턴스를 생성할 때 우리가 생각하는 몇 가지 속성을 추가할 수 있습니다. 필수 바인딩된 속성은 필수로 입력해야 합니다. 특별한 __init__ 메서드를 정의하면 인스턴스를 생성할 때 이름, 점수 및 기타 속성이 인스턴스에 연결됩니다.
class Student(object): def __init__(self, name, score): self.name = name self.score = score
__init__ 메서드의 첫 번째 매개 변수는 항상 생성된 인스턴스 자체를 나타내는 self입니다. __init__ 메서드를 사용하면 self가 생성된 인스턴스 자체를 가리키기 때문에 다양한 속성을 self에 바인딩할 수 있습니다.
__init__ 메서드를 사용하면 인스턴스를 생성할 때 빈 매개변수를 전달할 수 없습니다. __init__ 메서드와 일치하는 매개변수를 전달해야 하지만 self는 인스턴스 변수에 전달될 필요가 없습니다. 전달:
>>> bart = Student('Bart Simpson', 59) >>> bart.name 'Bart Simpson' >>> bart.score 59
일반 함수와 비교하여 클래스에 정의된 함수의 유일한 차이점은 첫 번째 매개변수가 항상 인스턴스 변수 self이고 호출 시 이 매개변수를 전달할 필요가 없다는 것입니다. 그 외에 클래스 메소드는 일반 함수와 다르지 않으므로 기본 매개변수, 변수 매개변수, 키워드 매개변수를 계속 사용할 수 있습니다.
관련 추천: "Python Tutorial"
위 내용은 파이썬에서 클래스란 무엇인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!