![](https://upload-images.jianshu.io/upload_images/17624434-5f9fd883c16a574c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
### 내장 회원
```파이썬
# 클래스 / 객체 / 객체 .__ dict__를 얻을 수있는 클래스의 멤버에 속한다
고해상도 = 데모 .__ dict__ # GET 회원의 현재의 클래스
고해상도 =이 .__는 #은 객체의 현재 멤버가 속한 가져 오기 dict__ OBJ
# 문서 정보 클래스 / 객체 .__ doc__를의 클래스를 돌려
입술 = 데모 .__ doc__를
입술 = OBJ .__ doc__를
# 구성된 클래스의 문자열 이름을 가져옵니다
입술 = 데모 .__ name__
현재 파일이 __main__로 표시되는 경우 # 클래스의 파일 이름, 위치하기
입술 = 데모 .__ module__
# __Bases__ 부모 클래스의 현재 클래스의 목록을
고해상도 = 데모 .__ base__ # GET 최초의 부모 클래스 상속
고해상도 = 데모 .__ bases__ # GET 상속 부모 클래스의 모든 목록
# MRO는 현재 클래스의 상속 체인의 목록을
데모 = 아무것도 .__ mro__
```
### 분류 방법
```파이썬
1. 개체 방법
특징 :
방법은 다음과 같이 자기 파라미터를 포함하는 클래스 정의
2. 자체를 포함하는 방법은 단지 목적을 사용하여 호출 될 수있다
3. 방법은 객체가 전달 부를 것이다
2. 클래스 메소드
특징 :
1. 클래스에 정의 된 방법은 장식이 @classmethod 장식되어 있습니다
2. 이 방법은 CLS 줄 인수를 가지고 있습니다. 직접 클래스 호출을 사용하지 않아도 객체를 인스턴스화
3. 이 방법은 전달 된 클래스를 호출합니다
3. 바인딩 클래스 메소드
특징 :
1. 클래스에 정의 된 방법
2. 에만 호출 클래스를 사용하여
3. 수신 객체 또는 클래스는 전송되지 않습니다
4. 정적 메소드
특징 :
1. 클래스에 정의 된 방법에서, 우리는 @staticmethod 장식하는 장식을 사용하여
2. 당신은 객체 또는 클래스 호출을 사용할 수 있습니다
3. 수신 객체 또는 클래스는 전송되지 않습니다
```
### 일반적으로 사용되는 기능
```파이썬
# 감지 클래스와 관련 개체
# Issubclass (하위 클래스는 상위 클래스) # 클래스가 다른 클래스의 하위 클래스 여부를 검출
# 입술 issubclass = (D, B)
중 # isinstance (객체 클래스) # 객체 클래스의 결과의 클래스 또는 서브 클래스의 인스턴스인지를 검출
# = 입술 isinstance (D, A)
# 클래스의 회원과는 운영과 관련된 객체
클래스 / 객체 검출 #으로 hasattr (객체 / 클래스의 멤버 이름 ')의 지정된 멤버의 이름을 포함
# = 입술으로 hasattr (d, '이름')
#getattr (객체 / 클래스의 멤버 이름 ')는 클래스 번호 / 객체의 멤버의 값을 취득
# = 입술 getattr (d '말')
멤버 # 1 않은 setattr의 속성치 (오브젝트 / 클래스의 멤버 이름 ","부재의 값 ")이 제공 클래스 / 개체
입술 않은 setattr = (d, '이름', 'OOO')
# 인쇄 (d.name)
#delattr (클래스 / 객체 멤버 이름 ')를 삭제 클래스 / 대상 부재 적절 델 개체 삭제는 동일한 결과 구성원
# delattr (D, '이름')
# 디렉터리 () # 현재 객체의 목록을하면 회원에 액세스 할 수 있습니다
아무것도 = (d)를 말할
```
### 매직 방법
수동 메소드 호출을 필요로하지 않습니다> 매직 방법은 자동으로 실행 할 수 있습니다
```파이썬
1. __init__ 초기화 방법 *****
트리거 메카니즘 : 트리거 후 즉시하는 오브젝트를 인스턴스화하고있어서
역할 : 구성원 속성, 개방 또는 일부 리소스를 생성의 호출 할당 방법 : 완전한 개체가 현재와 같은 일부 초기화 작업을 만들었습니다. .
매개 변수 : 자기, 현재의 객체를 수신은, 다른 매개 변수는 필요에 따라 정의 할 수 있습니다
반환 값 : 없음
주의 사항 : 없음
2. __new__ 생성자 ****
트리거 메커니즘 : 자동 트리거 (__init__ 전에 트리거) 객체 인스턴스화
역할 : 관리 제어 프로세스 개체가 생성
파라미터 : 현재 클래스를 수신 CLS는, 다른 파라미터는 초기화 파라미터의 방법에 따라 결정된다
반환 값 : 더 리턴 값은 객체 결과 없음의 인스턴스가없는 경우, 객체 .__ 새로운 __ (CLS) 생성 된 객체 반환해야합니다
주의 사항 :
첫번째 파라미터 외에도 파라미터 __init__ 방법 __new__ 일관성있어서,
더 리턴 값은 객체 결과 없음의 인스턴스가없는 경우, 객체 .__ 새로운 __ (CLS) 생성 된 객체를 반환해야합니다
시나리오 : 싱글 톤 디자인 패턴 디자인 패턴
3. __del__ 소멸자 *****
트리거 메커니즘 : 클래스 객체가 파괴 자동으로 트리거
개체의 릴리스 만들 때 일부 자원은 개폐 만들거나 :의 역할을
매개 변수 : 자기는, 현재의 객체를 받아
반환 값 : 없음
주의 사항 : 없음
4. __call__ ***
트리거 메커니즘 : 자동으로 트리거 할 때 직접 함수 호출로 객체
전화를 용이하게 유도 단계의 일반적인 클래스 또는 객체 : 액션
매개 변수 : 자기 전류 객체를 수신, 다른 매개 변수에 따라이 요구의 단점을 호출
반환 값 : 선택
5 .__ len__
트리거 메카니즘 : 자동 트리거 현재 개체를 감지하는 LEN 기능 사용시
작업 : 현재의 객체의 검출 정보에 사용될 수있다 렌 함수는 데이터 인
매개 변수 : 자기 전류 객체를 수신
반환 값 :이 있어야하고, 정수 여야합니다
주 : 속성 값을 얻을 렌, 재산 반환 값으로 반환되는의 길이가 될 수있다
6 .__ str__
트리거 메커니즘 : 인쇄 기능 STR 또는 트리거 할 때 자동으로 개체에서 작동
작업 : 오브젝트 코드 문자열을 반환은, 사용자 정보를 인쇄 할 수 있습니다
매개 변수 : 자기, 현재 객체를 수신
반환 값 : 멀리 문자열 형식의 값이어야합니다,이 있어야합니다
7 .__ repr__
트리거 메커니즘 : 자동으로 트리거 할 때 변환에에 repr 방법을 사용하여 현재 객체
결과 : 결과는 조작 대상 기능에 repr 제공 될 수있다
매개 변수 : 자기, 현재 객체를 수신
반환 값 : 멀리 문자열 형식의 값이어야합니다,이 있어야합니다
참고 :이 방법 __str__ 마법이없는 경우 정상적인 상황에서, __ repr__ 방법은 마법의 방법이 __str__ 대체합니다
8 .__ bool__
트리거 메커니즘 : 현재 사용 부울 기능은 기본적으로 자동 트리거 현재 개체를 변환은 객체가 True로 변환됩니다.
효과 : 부울 객체는 데이터를 변환 할 수 있습니다 변환기의 형식을 대체 할 수
매개 변수 : 자기 객체를 수신
반환 값 : 반환 값은 부울이어야합니다
```
### 관련 마법 방법의 회원
```파이썬
## 1. __getattribute__ 가장 높은 우선 순위
트리거 메카니즘은 : 객체 멤버를 액세스하는 경우에 관계없이 전류가 회원인지 여부를 자동 트리거
역할 : 데이터의 일부 구성원이 처리 할 때 당신은 개체를 얻을 수 있습니다
매개 변수 : 자체 수신 객체 현재 부재의 항목 이름은 액세스를 수신
반환 값 : 비용 소비, 반환 값은 액세스의 결과입니다
참고 : 현재의 마술 방법에서 현재 개체의 구성원에 금지 액세스 할 수 있습니다, 그것은 재귀를 트리거합니다.
당신이 마법 방법의 현재 구성원의 개체에 액세스하려면 개체에 액세스하는 데 사용되어야합니다
형식 : 오브젝트 .__의 getAttribute __ (자체, 항목)
## 2. __getattr__
트리거 메커니즘 : 액세스 회원이 개체가 존재하지 않는, 자동 트리거
역할 : 오류가 존재하지 않는 경우, 회원 액세스를 방지하기 위해도 존재하지 않는 과제의 구성원이 될 수 있습니다
매개 변수 : 현재 개체를 수신 자체가 현재 부재의 항목 이름 액세스를 수신
반환 값 : 선택
참고 : __getattribute__ 방법이 때, 방법은 __getattribute__ 수행하는 것
참고도하지 방문을 다시이 방법의 현재 구성원에 존재하지 않는, 그것은 재귀 트리거
## 3. __setattr__
트리거 메커니즘 : 자동으로 개체의 멤버 트리거에 할당하는 경우 (추가 포함, 수정)
역할 : 관리의 제한 또는 대상 회원을 추가 및 수정 작업하기
매개 변수 : 1. 도 2는 자기 현재의 오브젝트를 수신한다. 회원 이름 키 설정 3. 발 부재 설정 값
반환 값 : 없음
참고 : 직접 현재 할당의 회원을 대상으로 현재 금지 마법 방법에있어서, 재귀를 트리거
현재 개체의 멤버에 할당 할 경우, 객체가 필요
형식 : 오브젝트 .__ 않은 setattr __ (자체, 키, 값)
## 4. __delattr__
트리거 메커니즘 : 삭제가 자동으로 트리거 멤버 객체
멤버를 제거하려면 개체를 제한하기 위해 주어진 것을 방지 할 수, 당신은 또한 존재하지 않는 멤버를 삭제할 수의 역할을
매개 변수 : 1, 자신이 현재 객체를받습니다. 항목 삭제 회원 이름
반환 값 : 없음
참고 : 마법 방법의 현재 구성원에서 개체를 삭제하지 마십시오, 그것은 재귀를 트리거합니다.
현재 개체의 구성원을 제거하려면, 우리는 개체의 도움이 필요합니다
형식 : 오브젝트 .__ delattr __ (자체, 항목)
```
### 액세스 순서의 회원! ! !
1.를 호출`__getattribute__` 마술 방법
2. 통화 데이터 기술자 나중에 말하는 것입니다 []
현재 개체의 3 호 회원
현재 클래스의 멤버를 호출 (4)
5. 통화 데이터 기술자는 [비 나중에 이야기]
부모 클래스의 멤버를 호출 (6)
7. 전화 마법의 방법`__getattr__`
> 이들의 부재를 호출하는 상기 일련의 단계가 성공적으로 호출 될 수있는 경우, 다시 수행되지