속성 액세스 코드의 속성 기능 정의 속성을 사용하여 섹션 7.23 파이썬

크리에이티브 커먼즈 라이센스 저작권 : 저작자는 다른 사람들이 종이를 기반으로 만들 수 있도록하고 (동일한 라이센스 원래 라이센스 계약에 따라 용지를 배포해야합니다 크리에이티브 커먼즈를 )

속성 액세스 코드의 속성 기능 정의 속성을 사용하여 섹션 7.23 파이썬

I. 배경
      이 장 앞부분 섹션에서, 우리는 "특성을 얻을"형태의 관련 지식 기반, 예를 들어 설명하였으나, 정의 수를 도입,이 예에서 "SET 속성"때 인스턴스가 액세스 방법을 속성입니다 인스턴스 데이터 속성은, 그 데이터에 대한 액세스는 방법 액세스 방법에 의해 제조 될 수있다 개인,하지만 당신은 액세스 방법을 통해 액세스 할 수있는 특정 규칙을 준수 할 경우 개인 인스턴스 데이터에 설정되어 있지 않습니다. 프로그램이 데이터를 프로그램을 만들 것입니다이 액세스 방법의 대규모 사용의 이상의 인스턴스에 액세스하려는 경우, 단조롭고 지루한 것 같다. 이 문제를 해결하기 위해, 파이썬이 메커니즘은 인스턴스 변수가 이러한 속성에 대한 액세스로 액세스 할 수 있습니다 일반 클래스로 사용하고, 관련 액세스 할 수 클래스 정의를 사용하여 액세스 방법을 보장하기 위해 제공, 일반 인스턴스 변수, 쿼리와 유사한 과제에 해당하는, 액세스 방법을 삭제할 수 있지만 액세스 방법의 실제 구현은 클래스 정의의 특성에 의존한다. 이 함수는 인스턴스 속성 액세스를 정의하는 속성을 사용하는 것입니다.

둘째, 구문 해석
1. 구문은 클래스 인스턴스에 대한 정의는 다음 줄 문을 추가하는 코드의 몸을 정의 속성 :
예 특성 = 재산 (fget = 없음, FSET = 없음, 프델 = 없음, 문서 = 없음)


개인 가변 길이도 __length 예를 긴 직사각형 액세스 방법 getLen, setLen 클래스 사각형에 대해 정의하고, 길이는 직사각형의 인스턴스 변수에 저장됩니다, 우리는에 class 속성의 새로운 인스턴스를 정의하기 위해 다음과 같은 문장을 사용할 수 있습니다 직사각형 액세스 길이 :
LEN = 속성 (getLen, setLen, 없음 '긴 직사각형')

2. 구문 해석
1) 속성의 예 : 속성 이름은 나중에 액세스와 관련된 데이터 속성에 의존 한 후, 새로운 정의의 인스턴스 속성을 사용해야합니다 속성 이름, 당신은 이미 정의 된 속성을 사용할 수 없습니다이 모드를 통해 액세스 할 의미 ;되어야 특히 본 실시 예에서, 새로운 속성은 상기와 같은 예를 들어, 정의와 연관된 하나 개 이상의 인스턴스 변수와 특히 연관 방법에 의해 얻을 수 및 설정을 할 수 있음을 알아야 클래스 인스턴스에서 다음의 두 가지 방법이 있어야 :
   

def setLen(self,length):self.__length=length
def getLen(self): return self.__length


2) 상기 방법은, 정의 된 속성 유형 인스턴스 인스턴스 변수없는 속성 아니라 동작의 대응 방법을 저장할 실제 필요한 액세스의 "속성"새로운 객체 인스턴스 변수의 타입이다. 속성은 건물 객체는 객체를 만든 후 fget, FSET 및 프델 방법을 설정하는 데 사용됩니다 () 세 가지 방법을 가지고, 게터 (), 세터 () 및 삭제, 클래스가 많은 특별한 방법을 가지고있다, 정말 함수가 아닙니다. 그것의 본질은 속성 접근 방법은 위장 액세스의 새로운 쌍의 속성을 정의 호출하는 것입니다.
3) 속성 네 함수 파라미터 :
오더 판독 속성을 얻는 방법에있어서, A) 네 개의 파라미터를 설정 속성 설정 방법 델 처음 세 개의 매개 변수가 각각의 방법의 세 가지 실시 예에 대응하는 속성 및 메소드 문서를 삭제 특정 속성 또는 판독, 삭제 및 설정은, 문서화 문자열이 새롭게 정의 된 속성을 설명하기위한 검사가 데이터 액세스의 정확성을 보장하기 위하여 변환 및 데이터 처리 방법을 수행 할 수 있고, 문서이고;
b) 실제 사용시에 착신이 속성 0이 될 수 없다 (둘)) 2 (읽기 쓰기 등록), 3- (읽기 쓰기 속성 A (판독 전용 속성을 판독이나 속성을 쓰기 또한 삭제 될 수있다) 및도 4 (읽기 쓰기 특성을, 또한 문서) 파라미터를 포함하고, 삭제할 수있다.
3. 다음 해당 속성에 액세스 할 수있는 동일한 인스턴스 변수와 동등한 얻을 설정 델 방법은 하나 이상의 속성 기능 바인딩 속성 인스턴스 변수 및 방법과 동작들을 작동 정의 액세스 자동 호출 관련은, 델 방법을 설정하세요. 예 :
우리는 직사각형 인스턴스 클래스를 정의 RECT = 직사각형 (5,4)를 한 후, 기준 : 인쇄 길이 정보 출력 (rect.len) rect.len = 10 (10)의 길이를 조정. 사실, 상기 동작은 동일하다 :
인쇄 (rect.getLen ())
rect.setLen (10)
전술 한 속성의 예는 액세스 할 수있는 사실, 일대일, 개인 속성에 대한 액세스를 정의하는 다수의 속성을 정의하는 데 사용되며 (private 변수 포함) 정의 일본어 클래스 인스턴스 변수는 정의 된 특성을 실시 할 수있다 그들은 모든 할당 방법을 결정하는 설정 방법 누구에 할당 같이 할당 방법을 통해 이동하도록 설정되어 있기 때문에 작업은 하나 개 이상의 인스턴스 변수를 변경합니다.
4. 특성이 이러한 방법을 유발하지 않고, 외부 인스턴스 변수에 대한 액세스를 액세스 할 수있는 내부 속성 인스턴스 변수에 대응하는 정의 된 경우. 위의 경우 자체 .__ 길이 (물론 자기의 .__ 길이가 직접 액세스 할 수 없습니다가 self.length 인 경우 만)하면 외부에서 할당 할 수 있습니다, 그것은 직접 예를 변수 지정, 관련 set 메소드가하는 것입니다.

세 인스턴스의 속성 장점 속성을 정의하는 기능을
가져 오기를 호출 등 1. 속성 인스턴스 속성이 정의되는, 표시 방법을 설정 클래스 방법 액세스 인스턴스 사용되어 변수 인스턴스의 할당이 효율적으로 코드를 향상시킬 수있는 특성 적절한 액세스 로직 보장 가독성과 단순성,
어느 시나리오에서 2, 경우에 사용하는 직접 접속 방식을 사용하는 경우 변수의 코드를 기록하지만, 연산 요건 때문에 필요에 따라, 특정 속성 액세스 로직을 증가 기존의 구현은 GET으로 모든 변수에 대한 액세스를 설정하는 방법이 필요합니다, 당신은 쉽게 문제를 해결할 수 많은 코드 및 테스트를 많이하고, 재산의 사용을 수정해야, 그것은 해당 원본으로, 인스턴스 변수를 원래 인스턴스 변수의 이름을 바꿀 수 있습니다 개선 된 액세스 방법은 액세스 로직 제어 코드를 필요로하고있을 단순히 이러한 요구 사항을 달성 할 수있는 인스턴스 변수로 정의 된 원래의 속성 이름을 사용한다.

이 부분이 새롭게 정의 된 속성을 읽어 단순화 내부에있어서, 쓰기 액세스되는 것을 유의할 인스턴스에 편리한 외부 액세스 클래스 정의의 속성 기능 문법 기술되고 설명 된 특성을 사용 특히 속성 액세스 방법 할당 및 삭제, 데이터 액세스 로직을 확보하면서. 다음 섹션에서는 추가 도입에 대한 자세한 케이스를 결합합니다.
쉽게 파이썬을 입력 할 수 있습니다 파이썬 프로그래머와 접촉을 할 수없는 오래된 유인원 학습 파이썬 학습 경험의 점진적 도입 요약에 대한 기사의 올드 원숭이 파이썬 (https://blog.csdn.net/LaoYuanPython) 시리즈 세계.
에 오신 것을 환영 비판주의는 당신에게 감사합니다!
 

추천

출처blog.csdn.net/LaoYuanPython/article/details/93350061