08.07 객체 지향

액세스 가시성

  • 개인 변수 "__"앞에 변수 이름
  • 개인은 외부에서 호출 할 수 없습니다, 상속 될 수 없습니다,하지만 당신은 내부적으로 호출 할 수 있습니다.
  • 당신이 개인 변수를 사용하는 경우, 당신은 그것의 실제 이름을 볼 수 DIR (클래스 ())를 사용할 수 있습니다.
  • 개인 변수 / 클래스 내에서 함수를 직접 호출 할 수 있습니다.
  • 당신이 변수를 반영하려면 / 기능을 사용할 수있는 것이 특히 중요하다 "_"
#私有
클래스
A (객체) : 데프 __init__ (자동) : 자체. __a = 1000 자체. __b = 100 데프 __B (자기) 인쇄 (자기. __a ) self.c () DEF __c (자기) 인쇄 (. 자기 __a ) A_ = A () 인쇄 (A _._ A__a)

@property 데코레이터와 @의 .setter 데코레이터

장식 할 때주의해야 할 필요가 :

  1. 데코레이터 이름, 함수 이름이 일치해야합니다.
  2. 선언 세터를 작성하는 속성 필요, 순서는 되돌릴 수 없습니다
  3.  당신은 그냥 약간의 변수가 수정할 수 없습니다에 액세스하려는 경우, 당신은 @property를 접근 사용할 수 있습니다
  4. 당신은 수정을 구축하거나, 액세스 제어를 제거 할 수 있습니다 접근 변수를 수정합니다.
#装饰器的使用
클래스
이름 (객체) : 데프 __init__ (자동, A, B) : 자기. __a는 = 자체. __b = B @property의 데프 A (자동) : 인쇄 (. 자기 __a ) 이름 = 이름 (00200 ) 야그

 

# 修改器的使用
클래스 이름 (객체) :
     데프  __init__ (자동, A, B) : 
        자기. __a = 
        self._b = B 
    @property의 데프 A (자기)
         인쇄 (. 자기 __a ) 
    @ A.setter DEF A (자기, A1) 
    자체. __A의 =의 A1는
    데프 (자동) 재생 :
    인쇄 (. 자기 __a )
    인쇄 (. 자기 __b ) 
이름 = 이름 (100200 ) 
야그 = 1000 
name.play ()
    
   
  • 예 : 입력 세 개의 숫자 (개인), 그리고 두 숫자를 변경하려고 세 개의 숫자를 찾아
클래스 A (객체)
     DEF  __init__ (자기, A, B, C) 
        자체. __a는 = 
        자체. __b = B의 
        자기. __c = C 
    @property의 데프 B (자기)
         인쇄 (자기. __a ) 
    @ B.setter 데프 B (자기, NUM) 
        자체. __a = NUM의
     데프 합 (자기)
         인쇄 (. 자기 __a + 자기. __b + 자기. __c ) = A (12,1,4 )
    
    
AB = 99 
a.sum ()

파이썬에서 클래스는 동적입니다.

클래스 민 (객체) :
     데프  __init__ (자동) : 
        self.a = 1000 데프 A (자동) :
         인쇄 (self.b) 
NUM = 민 () 
num.b = 1000000
 # 인쇄 (num.a) 인쇄 (NUM. b) 
num.A ()
    
    


_ _ 슬롯 _ _ 매직

       우리는 당신이 실현 여부를 알 수없는, 이것에 대해 이야기하고, 파이썬은 동적 언어이다 . 일반적으로, 동적 언어는 새 속성 또는 우리가 실행에 개체에 바인딩 방법은 물론, 속성을 바인딩을 해제 할 수 있도록하고 방법이 결합되어있다. 우리가 특정 속성을 결합 할 수있는 개체의 사용자 정의 유형을 정의해야하지만 클래스를 정의 할 수 있습니다 _ _ 슬롯 _ _ 변수가 정의되어야한다. 그 주 _ _ 슬롯 _ _ 만 적용 객체의 현재 클래스에 제한이 서브 클래스는 아무런 역할을하지 않는다.

클래스 사람 (객체) :
     #은 단지 _name, _age 속성을 바인딩 할 수 있습니다 Person 객체를 정의하고 --gender 
    __slots__은 = ( ' _name ' , ' _age ' , ' 의 _gender') 
    DEF  __init__ (자기, 이름, 나이) : 
        자기. __name__ = 이름 
        자체. __age = 나이

 

추천

출처www.cnblogs.com/lxq0727/p/11315756.html