>백엔드 개발 >파이썬 튜토리얼 >파이썬에서 클래스란 무엇인가?

파이썬에서 클래스란 무엇인가?

silencement
silencement원래의
2019-06-27 09:22:4313335검색

파이썬에서 클래스란 무엇인가?

객체 지향 프로그래밍 프로세스에는 클래스와 객체(인스턴스라고도 함)라는 두 가지 중요한 개념이 있습니다. 클래스는 특정 객체 배치를 추상화한 것으로 이해하면 객체가 됩니다. 구체적인 실체이다. 이런 의미에서 우리가 일상에서 사람이라고 부르는 것은 사실 인간이 아니라 인간 대상이다.

Python의 간단한 클래스 정의 구문은 다음과 같습니다.

class 类名:
    执行语句...
    零个到多个类变量...
    零个到多个方法...

클래스 이름은 법적 식별자만 있으면 되지만 이는 Python의 문법 요구 사항만 충족합니다. 프로그램 가독성 측면에서 Python의 클래스 이름은 다음과 같아야 합니다. 하나 이상의 의미 있는 단어로 구성됩니다. 각 단어의 첫 글자는 대문자로 표시하고 나머지 글자는 모두 소문자로 표시합니다.

위 정의에 따르면 Python의 클래스 정의는 모두 함수 정의와 비슷합니다. 모두 콜론(:)으로 시작하여 클래스 본문으로 균일하게 들여쓰기된 부분을 사용합니다. 차이점은 함수 정의는 def 키워드를 사용하는 반면 클래스 정의는 class 키워드를 사용한다는 것입니다.

Python의 클래스 정의는 클래스 헤더(클래스 키워드 및 클래스 이름 부분 참조)와 균일하게 들여쓰기된 클래스 본문으로 구성됩니다. 클래스 본문에서 가장 중요한 두 멤버는 클래스 변수와 메서드입니다. 클래스에 대해 클래스 변수와 메서드가 정의되지 않은 경우 해당 클래스는 빈 클래스와 동일합니다. 빈 클래스에 다른 실행 가능 문이 필요하지 않으면 pass 문을 자리 표시자로 사용할 수 있습니다. 예를 들어 다음과 같은 클래스 정의가 허용됩니다.

class Empty:
    pass

일반적으로 빈 클래스는 실질적인 의미가 별로 없습니다.

클래스 내 멤버 정의 순서는 아무런 영향을 주지 않으며, 멤버끼리 서로 호칭할 수 있습니다.

Python 클래스의 가장 중요한 두 멤버는 변수와 메서드입니다. 클래스 변수는 클래스 자체에 속하며 클래스 자체에 포함된 상태 데이터를 정의하는 데 사용됩니다. 인스턴스 변수는 클래스의 객체에 속하고 사용됩니다. 정의하기 객체에 포함된 상태 데이터: 메소드는 이 클래스 객체의 동작이나 함수 구현을 정의하는 데 사용됩니다.

Python은 동적 언어이므로 해당 클래스에 포함된 클래스 변수를 동적으로 추가하거나 삭제할 수 있습니다(프로그램이 클래스 본문의 새 변수에 값을 할당하면 클래스 변수를 추가함). 클래스 변수를 기존 클래스에 추가합니다. 프로그램은 del 문을 통해 기존 클래스의 클래스 변수를 삭제할 수 있습니다.

마찬가지로, Python 객체의 인스턴스 변수는 동적으로 추가되거나 삭제될 수도 있습니다(새 인스턴스 변수에 값이 할당되는 한 인스턴스 변수가 추가됩니다). 따라서 프로그램은 인스턴스 변수를 자신의 객체에 어디에서나 추가할 수 있습니다. 프로그램은 del 문을 사용할 수 있습니다. 기존 개체의 인스턴스 변수를 삭제합니다.

클래스에 정의된 메서드는 기본적으로 인스턴스 메서드입니다. 인스턴스 메서드를 정의하는 방법은 인스턴스 메서드의 첫 번째 매개 변수가 메서드 호출자에 바인딩된다는 점을 제외하면 기본적으로 함수를 정의하는 방법과 동일합니다. 따라서 인스턴스 메소드는 일반적으로 self라는 이름의 매개변수를 하나 이상 정의해야 합니다.

참고: 인스턴스 메서드의 첫 번째 매개변수는 self라고 불릴 필요가 없습니다. 사실 어떤 매개변수 이름이라도 불릴 수 있습니다. 이는 가독성이 가장 좋은 매개변수 이름을 self로 지정하는 관례일 뿐입니다.

인스턴스 메서드에는 __init__라는 특별한 메서드가 있는데, 이 메서드를 생성자 메서드라고 합니다. 생성자 메서드는 이 클래스의 객체를 생성하는 데 사용되며 Python은 생성자 메서드를 호출하여 이 클래스의 객체를 반환합니다(new를 사용할 필요 없음).

이중 밑줄로 시작하고 이중 밑줄로 끝나는 Python의 많은 메서드에는 특별한 의미가 있습니다. 이러한 특수 메서드는 이 튜토리얼의 뒷부분에서 자세히 소개됩니다.

생성자는 클래스가 객체를 생성하는 기본적인 방법이므로 Python도 함수를 제공합니다. 개발자가 클래스에 대한 생성자를 정의하지 않으면 Python은 자동으로 self가 하나만 포함된 클래스에 대한 기본 생성자를 정의합니다. 매개변수.

다음 프로그램은 Person 클래스를 정의합니다.

class Person :
    '这是一个学习Python定义的一个Person类'
    # 下面定义了一个类变量
    hair = 'black'
    def __init__(self, name = 'Charlie', age=8):
        # 下面为Person对象增加2个实例变量
        self.name = name
        self.age = age
    # 下面定义了一个say方法
    def say(self, content):
        print(content)

위의 Person 클래스 코드는 생성자를 정의합니다. 이 생성자는 __init__라는 특수 메서드 이름만 갖습니다. 생성자 메서드에 의해 초기화된 개체입니다.

위 내용은 파이썬에서 클래스란 무엇인가?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.