python 은 MethodType 바 인 딩 방법 을 클래스 예제 코드 로 사용 합 니 다.

머리말
본 고 는 주로 python 이 MethodType 으로 연결 하 는 방법 과 관련 된 내용 을 소개 하고 참고 학습 을 제공 합 니 다.다음은 더 이상 말 하지 않 겠 습 니 다.상세 한 소 개 를 살 펴 보 겠 습 니 다.
python 에서 MethodType 에 익숙 하지 않 은 분 들 은 먼저 보 셔 도 됩 니 다이 문장
문 제 를 야기 하 다.
먼저 다음 코드 를 보십시오.

from types import MethodType 
def set_age(self,age): 
 self.age=age 
class Stu(object): 
 pass 
Stu.set_age=MethodType(set_age,Stu) 
A=Stu() 
B=Stu() 
A.set_age(10) 
B.set_age(15) 
print(A.age,B.age)#    15
이 코드 를 실행 하면 출력 결과 가 모두 15 인 것 을 발견 할 수 있 습 니 다.우 리 는 분명히 A 와 B 대상 의 속성 치 를 각각 설 정 했 습 니 다.왜 그 럴 까요?처음에 저도 똑 같은 의문 이 있 었 는데 나중에 MethodType 에 대한 이해 가 부족 하 다 는 것 을 알 게 되 었 습 니 다.조 사 를 통 해 다음 과 같은 설명 을 얻 었 습 니 다.
해석 하 다.
Stu 클래스 자체 에 속성 과 방법 이 없 기 때문에 이 클래스 로 만 든 인 스 턴 스 도 속성 과 방법 이 없습니다.MethodType 으로 setage 방법 은 Stu 클래스 에 연결 합 니 다.이 방법 을 Stu 클래스 내부 에 직접 쓰 는 것 이 아니 라 Stu 메모리 에 링크 가 외부 로 가리 키 는 방법 을 만 듭 니 다.Stu 인 스 턴 스 를 만 들 때 이 링크 도 복 사 됩 니 다.그래서 아무리 인 스 턴 스 를 만들어 도 이 인 스 턴 스 와 Stu 류 는 같은 set 를 가리 키 고 있 습 니 다.age 방법.4567914)A 라 는 인 스 턴 스 내부 에 age 속성 을 만 들 지 않 고 age 속성 을 외부 set 에 만 듭 니 다.age 방법의 메모리 영역 에 있 습 니 다.A 와 B 내부 링크 는 모두 외부 set 를 가리 키 기 때문이다.age 방법의 메모리 영역 이기 때문에 A 든 B 든 set 를 호출 합 니 다.age 방법 을 바 꿀 때 setage 방법 메모리 에 있 는 age 속성 때문에 A 가 B 를 바 꾸 면 바 뀝 니 다.만약 에 새로운 인 스 턴 스 C 가 set 를 호출 하지 않 으 면age 방법 을 전제 로 age 속성 도 있 습 니 다.C 의 link 가 가리 키 는 set 이기 때 문 입 니 다.age 방법의 메모리 영역,setage 는 전에 A 나 B 에 의 해 호출 되 었 다.
총결산
대충 이렇게 바 인 딩 하 는 방법 으로 설정 한 속성 은 자바 에서 정적 변 수 를 의미 합 니 다.
자,이상 이 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기