> 백엔드 개발 > 파이썬 튜토리얼 > Python의 액세스 한정자: 공개, 비공개 및 보호

Python의 액세스 한정자: 공개, 비공개 및 보호

PHPz
풀어 주다: 2023-09-02 19:17:06
앞으로
1615명이 탐색했습니다.

Python의 액세스 한정자: 공개, 비공개 및 보호

액세스 한정자는 C++, java, Python 등과 같은 객체 지향 프로그래밍 언어에서 클래스 외부에서 클래스 멤버 변수 및 메서드에 대한 액세스를 제한하는 데 사용됩니다. 캡슐화는 내부 데이터를 보호하는 OOP 원칙입니다. Public, Private 및 Protected와 같은 액세스 한정자를 사용하는 클래스입니다.

Python은 공개, 비공개, 보호라는 세 가지 액세스 한정자를 지원합니다. 이러한 액세스 한정자는 클래스 외부의 모든 개체에서 클래스의 멤버 변수 및 메서드에 액세스하는 데 대한 제한을 제공합니다.

공개 액세스 수정자

기본적으로 멤버 변수와 메서드는 공용입니다. 즉, 클래스 외부나 내부 어디에서나 액세스할 수 있습니다. 클래스나 메서드 및 속성을 공용으로 만드는 데 공용 키워드가 필요하지 않습니다. 다음은 공용 액세스 한정자의 예입니다. −

Example

의 중국어 번역은

Example

입니다.

학생 클래스에는 이름과 나이라는 두 개의 멤버 변수와 멤버 변수 값을 인쇄하는 메서드 표시가 있습니다. 특정 키워드가 할당되지 않았기 때문에 이 변수와 메서드는 모두 공개됩니다.

으아악

출력

으아악

개인 액세스 수정자

개인 액세스 한정자가 있는 클래스 속성 및 메서드는 정의된 클래스 내에서만 액세스할 수 있으며 클래스 외부에서는 액세스할 수 없습니다. Python에서 개인 속성 및 메서드는 앞에 두 개의 밑줄('__')이 있는 접두사를 추가하여 선언됩니다. 선언.

Example

의 중국어 번역은

Example

입니다.

BankAccount 클래스는 두 개의 개인 변수(예: account_number 및 Balance)와 은행 계좌의 잔액을 인쇄하는 개인 속성인 display_balance로 선언됩니다. 속성과 메서드는 모두 비공개이므로 클래스 외부에서 액세스하는 동안 속성 오류가 발생합니다.

으아악

출력

으아악

Protected 액세스 수정자

protected 액세스 한정자가 있는 클래스 속성 및 메서드는 클래스 내부와 protected 클래스를 상속하는 클래스에서 액세스할 수 있습니다. Python에서 보호된 멤버와 메서드는 이름 앞에 단일 밑줄('_')을 접두사로 사용하여 선언됩니다.

Example

의 중국어 번역은

Example

입니다.

Person 클래스에는 _name 및 _age라는 두 가지 보호 속성과 Person 클래스의 속성 값을 표시하는 데 사용되는 보호 메서드 _display가 있습니다. Student 클래스는 Person 클래스에서 상속되며 추가로 보호된 속성 _roll_number 및 상위 클래스 Person 클래스의 _display 메서드를 호출하는 공개 메서드 표시를 갖습니다. Student 클래스의 인스턴스를 생성하면 클래스 외부에서 디스플레이 메서드를 호출할 수 있습니다. 디스플레이 메서드는 비공개이므로 Person 클래스의 보호된 _display 메서드를 호출합니다.

으아악

출력

으아악

결론

이 기사에서는 Python 및 기타 객체 지향 프로그래밍 언어에서 데이터 숨기기 및 보호에 사용되는 세 가지 액세스 한정자에 대해 배웠습니다. 공개, 비공개 및 보호는 Python에서 사용되는 세 가지 액세스 한정자입니다. 클래스의 공용 속성과 메서드는 클래스 내부 또는 외부 어디에서나 액세스할 수 있습니다. 전용 멤버 변수 및 속성은 해당 변수가 선언된 클래스 내에서만 액세스할 수 있습니다. Protected 액세스 한정자는 클래스 내에서 그리고 해당 클래스에서 상속된 클래스에서 클래스의 속성과 메서드에 액세스해야 할 때 사용됩니다.

위 내용은 Python의 액세스 한정자: 공개, 비공개 및 보호의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿