객체 지향
첫째, 특수 수정
총 회원 :
(: 멤버 이름 앞에 플러스 두 개의 밑줄 민영화) : 개인 회원 __ 멤버 이름.
사실 클래스 이름 __ _ 회원의 이름으로 포장
- 직접 외부에 액세스 할 수 없습니다
- 서브 클래스는 직접 부모 클래스의 private 멤버에 액세스 할 수 없습니다 1 클래스 F를 :
2 DEF __init__ (자기) 3 self.ge = 123 (4) 자체. __gene = 123 개 5 6 클래스의 사용에 S (F) : 7 DEF __init__ (자기 이름) : 8 self.name = 이름 9 = 18 자기 .__ 연령 10 초 (S, 자기). __init__ () 11 DEF (자체) 표시 12 인쇄 (self.name) 13 인쇄 (자기. __age ) 14 인쇄 (self.ge) 15 인쇄 (자기.__gene ) 16 17 (S)에서의 S = ( ' zhangsan ' ) 18 s.show ()
특별 둘째, 구성원
__init __ : OBJ = 클래스 오브젝트를 생성하는 클래스 이름 () 및 기본 실행의 __init __ () 메소드;
__del__ : 개체가 소멸 될 때 호출 대신 소멸자와 생성자;
__call__ : 개체 이름 실행 + () 기본 방법;
1 급 푸 : 2 DEF __init__ (자기) 3 인쇄 ( " init를 ' ) 4 5 DEF __call__ (DELF, 인수 *, ** kwargs로) : 6 잉크 ( ' 호출 ' ) 7 8 푸 ()
__int __ : INT (개체)의 자동 __int __ () 메소드를 실행한다.
__str __ : STR (개체) 자동 __str __ () 메소드를 실행한다.
1 급 푸 : 2 DEF __init__ (자기) 3 개 패스 4 5 DEF __int__ (자기) 6 복귀 1,111 7 8 DEF __str__ (자기) 9 복귀 ' 자위대 ' 10 11 OBJ = 푸 () 12 인쇄 (OBJ, INT (OBJ), STR (OBJ))
__dict__ : 모두 사전에 의해 캡슐화 콘텐츠 객체를 반환;
세, 메타 클래스, 클래스의 아버지
A, 파이썬 모든 객체에서이다
B, 클래스 푸 :
패스
OBJ = 푸 ()
OBJ 푸 개체의 인스턴스이다 푸 클래스 객체의 일종
. 1 급 푸 (개체) 2 DEF FUNC (자기) . (3) 전단 (123 ) .도 4는 ================== 대응한다 . 5 DEF의 : 함수 (자기) . 6 인쇄 ( 123 ) . 7 . 8 푸 = 입력 ( ' 푸 ' (개체) { ' FUNC ' : 기능}) . 9 클래스 객체 선언, 클래스 객체 이름 : 푸 상속 (오브젝트), 클래스 객체 메소드 호출 FUNC을 갖는다
1 명 급 합니다 MyType (타입) : 2 DEF __init__ (자기, 인수 *, ** kwargs로 일) : 3 # 자기 = 푸 4 인쇄 ( ' 합니다 MyType 초기화 ' ) 5 초 (MYTYPE 자기). __init (무엇 염기 딕셔너리) 6 7 DEF __call__ (자기, 인수 *, ** kwargs로) : 8 # 자기 = 푸 9 인쇄 ( ' 합니다 MyType 통화 ' ) 10 OBJ = 자기. __new__ (SELT, 인수 *, ** kwargs로) 11 본인. __init__ (OBJ) 12 13 클래스 푸 (오브젝트 메타 클래스 = 합니다 MyType) 14 DEF __init__ (자기) 15 인쇄 ( " 푸 INIT ' ) 16 17 DEF __new__ (CLS * 인수 ** kwargs로) : 18 #의 CLS = 푸 19 인쇄 ( ' 푸 __new__ ' ) 20 리턴 객체입니다. __new__ (CLS, 인수 *, ** kwargs로) 21 22 coj = 푸 () 23 24 출력 : 25 초기화합니다 MyType 26은 합니다 MyType 통화 27 푸 이다 __new__ 28 푸 초기화 29 30 첫번째 단계 : 생성 바닥 통역자 클래스 푸 위쪽에서 코드의 실행은 제 호출합니다 MyType __ __init (); (31)은 제 2 위상 : 푸 클래스 오브젝트 OBJ를 생성; 32 (1). , 푸 먼저 __call의 __ ()에합니다 MyType 호출 푸 ()되도록합니다 MyType 개체이다 (33)는 2 급 푸하여 오브젝트 OBJ 생성 : 턴 호 (34)는 개체 + 다음 __call의 __의합니다 MyType ()를 () 메소드는 자동으로 호출된다 (35) 푸 개체 생성 : 푸 __new __ ()의 (36) 의 foo __init __ () : 푸 객체 인스턴스화
C 객체 클래스 객체 유형 입력 (...)이다 인스턴스 오브젝트 클래스 개체 개체