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 에 직접 연결 하 는 방법 을 사용 하면 됩 니 다.총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.