python 의 클래스 와 인 스 턴 스 가 속성 과 방법 을 어떻게 연결 하 는 지 설명 합 니 다.

3308 단어 python속성종류
머리말
python 클래스 와 인 스 턴 스 의 방법 을 호출 할 때 구름 속 에 안개 가 낀 것 같 습 니 다.생각 한 후에 자신의 생각 을 기록 합 니 다.첫째,자신의 이 해 를 강화 하고 자신의 기억 을 공 고 히 하 며 python 을 배우 고 싶 은 친구 들 이 이 추상 적 인 언어 를 이해 하도록 도와 줍 니 다.Python 은 동적 언어 이기 때문에 클래스 와 클래스 에 따라 만 든 인 스 턴 스 는 속성 과 방법 을 임의로 연결 할 수 있 습 니 다.다음은 각각 소개 합 니 다.
1.클래스 귀속 속성
클래스 바 인 딩 속성 은 class 에서 속성 을 직접 정의 할 수 있 습 니 다.이 속성 은 클래스 입 니 다.

 class Student(object):
  name = 'Student'
이 속성 은 모든 것 으로 분류 되 지만,클래스 의 모든 실례 에 접근 할 수 있 습 니 다.

class Student(object):
 name = 'Student'
s = Student() #     s
print(s.name) #   name  ,       name  ,       class name  
print(Student.name) #     name  
Student
Student
이 때 s.name 의 값 을 수정 하면 다음 과 같은 결과 가 있 습 니 다.

s.name = 'xiaoming' #      name  
print(s.name) #               ,  ,       name  
print(Student.name) #          , Student.name      
xiaoming
Student
다음 s.name 속성 삭제:

del s.name #        name  
print(s.name) #     s.name,     name      ,  name        
Student
이 를 통 해 같은 이름 의 인 스 턴 스 속성 은 클래스 속성 을 덮어 쓰 고 인 스 턴 스 속성 을 삭제 하면 인 스 턴 스 는 클래스 속성 에 위로 접근 합 니 다.
2.실례 귀속 속성
인 스 턴 스 바 인 딩 속성 방법 은 두 가지 가 있 습 니 다.하 나 는 클래스 의 self 변 수 를 통 해 다른 하 나 는 인 스 턴 스 에 직접 값 을 부여 하 는 것 입 니 다.

class Student(object):
 def __init__(self, name):
  self.name = name
s = Student('Bob')#        self      
s.score = 90#        
3.클래스 귀속 방법
클래스 바 인 딩 방법 은 두 가지 로 나 뉘 는데 첫 번 째 유형 은 클래스 바 인 딩 속성 과 같 습 니 다.예 를 들 어 다음 과 같 습 니 다.

Class Student(object):
 pass
a=Student()#    

def set_score(self,score):
 self.score=score

Student.set_score=set_score#     
a.set_score(99)#    
a.score
99#  
두 번 째 는 MethodType 을 사용 하여 클래스 에 연결 하 는 방법 입 니 다.

Class Student(object):
 pass
a=Student()#    

def set_score(self,score):
 self.score=score

from types import MethodType
Student.set_score = MethodType(set_score, Student)

a.set_score(99)#    
a.score
99#  
이 방법 은 주의해 야 할 부분 이 있 습 니 다.인 스 턴 스 b 를 계속 만 들 면:

b=Student()
b.set_score(60)
b.score
a.score
60
a 의 속성 score 값 도 60 이 되 는 것 을 발견 할 수 있 습 니 다.여기 서 개인 적 인 이 해 는 여기 서 score 는 이전 방법 처럼 클래스 에 직접 연결 되 는 것 이 아니 라 목록 과 같은 공유 인용 과 유사 한 관계 입 니 다.
즉,인 스 턴 스 a 와 b 는 이 score 를 자신의 속성 으로 참조 하고 수정 되면 모든 인 스 턴 스 를 참조 하 는 대응 속성 이 함께 변 합 니 다.
4.인 스 턴 스 바 인 딩 방법
첫 번 째 는 클래스 바 인 딩 방법 을 통 해 인 스 턴 스 를 호출 할 수 있 습 니 다.위 와 같 습 니 다.
두 번 째 는 MethodType 을 사용 하여 하나의 인 스 턴 스 를 연결 하 는 방법 입 니 다.

Class Student(object):
 pass
a=Student()#    

def set_score(self,score):
 self.score=score

from types import MethodType
a.set_score = MethodType(set_score, a)

a.set_score(99)#    
a.score
99#  
이러한 방식 은 인 스 턴 스 a 에 만 작용 합 니 다.스 터 드 넷 의 모든 인 스 턴 스 가 필요 하 다 면 클래스 Student 에 직접 연결 하 는 방법 을 사용 하면 됩 니 다.
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기