Python 클래스 방법 요약 설명
클래스 에서 의 함 수 를 클래스 방법 이 라 고 합 니 다.일반 함수 정의 와 약간의 차이 가 있다.
1.일반적인 방법
1.1 일반적인 방법 정의
일반 방법 과 일반 함수 의 정의 가 약간 다른 점 은 첫 번 째 매개 변 수 는 self 이 고 대 체 는 인 스 턴 스 대상 자 체 를 가리킨다.다음 그림 과 같이 정의 합 니 다.
class Person:
def __init__(self,name,age):
# name= name,age= age
self.name=name
self.age=age
1.2 일반 방법 호출함수 의 호출 은 함수 명()이 고 클래스 의 방법 호출 은?
클래스 방법 호출 은 반드시 대상 을 빌려 야 한다.호출 방식:대상.방법 명().
클래스 이름 을 직접 사용 할 수 없습니다.방법 명()은 앞에서 말 했 듯 이 클래스 의 방법 첫 번 째 매개 변 수 는 self 이 고 인 스 턴 스 대상 자 체 를 대표 하기 때문에 클래스 는 일반 방법 을 직접 호출 할 수 없습니다.
# cat
cat=Animals()
# run
cat.run()
클래스 이름 을 사용 하면 방법 이름 이 나타 납 니 다:TypeError:run()missing 1 required positional argument:'self',인 자 를 잃 어 버 립 니 다.그러나 실제로 우 리 는 대상 을 다시 사용한다.방법 명()을 사용 할 때 도 self 를 가지 고 있 지 않 았 지만 인 자 를 잃 어 버 렸 다 고 보고 하지 않 았 다.
원인:우리 가 대상 을 예화 할 때,즉 cat=Animal()이 실 행 될 때 cat 의 주 소 를 self 에 전 달 했 습 니 다.이때 self 는 cat 를 가 리 킵 니 다.
2.마술 방법
2.1 마술 방법의 정의
앞의 일반적인 방법 은 대상 명 이 필요 합 니 다.방법 명()을 호출 하 는 것 입 니 다.우리 의 마술 방법 은 비교적 특수 합 니 다.그 는 특수 한 시간 에 자동 으로 촉발 합 니 다.즉,호출 할 필요 가 없습니다.
2.2 흔히 볼 수 있 는 마술 방법
__init__(self,[매개 변수 이름])
대상 생 성 시 자동 호출 방법
__str__(self,[매개 변수 이름])
함수 에 반환 값 이 있 습 니 다.대상 이름 을 인쇄 할 때 자동 으로 호출 됩 니 다.
__del__(self)
인용 삭제 시 자동 호출
__call__(elf,[매개 변수 이름])
실행 대상 이름()시 자동 호출 즉 대상 을 함수 로 사용 합 니 다.
위의 그림 을 보면 우 리 는 cat 대상 을 만 들 었 을 뿐 호출init__방법 은 방법 에 있 는 방법 체 를 실 행 했 습 니 다.대상 을 만 들 때 python 이 자동 으로 작 동 하기 때 문 입 니 다.
__init__방법 은 어떤 작용 이 있 습 니까?
클래스 를 정의 할 때 속성 과 방법 을 정의 해 야 합 니 다.속성 은 클래스 의 특징 이 고 방법 은 할 수 있 는 일 입 니 다.
모든 사람 은 이름과 나이 가 있 기 때문에 우 리 는 하나의 Person 류 를 정의 하고 두 개의 속성 이름과 나 이 를 가 져 야 한다.
하면,만약,만약...
class Person():
name='jimi'
age=12
def run(self):
print('run')
person1=Person()
person2=Person()
그렇다면 person 1 과 person 2 대상 은 Person 의 속성 을 가지 고 있 지만 지금 은 두 사람의 속성 이 같 지만 모든 사람의 특징 에 부합 되 지 않 습 니까?모든 사람의 이름과 나이 가 일치 하지 않 는 다.그럼 어떻게 하면 대상 의 다른 속성 치 를 만 들 수 있 습 니까?여 기 는init__
class Person:
def __init__(self,name,age):
# name= name,age= age
self.name=name
self.age=age
person1=Person('meimei',12)
# person1 meimei 12
print(person1.name,person1.age)
person2=Person('john',13)
# # person1 john 13
print(person2.name,person2.age)
__str__굼벵이 의<운 규 의 곤경 에 처 한 기도 편액 인 환 어 를 쓰 는 것 이 므 로str__return 문구 가 있 습 니 다.하면,만약,만약...str__인쇄 대상,대상 은 주소 입 니 다.
class Person:
def __init__(self,name,age):
# name= name,age= age
self.name=name
self.age=age
# def __str__(self):
# return ' name:{}, age:{}'.format(self.name,self.age)
person1=Person('meimei',12) # <__main__.Person object at 0x0000025C1F932C50>
print(person1)
3.유형 방법
3.1 클래스 방법 정의
class Person:
def __init__(self,name,age):
# name= name,age= age
self.name=name
self.age=age
# def __str__(self,*krg,**krgs):
# return ' name:{}, age:{}'.format(self.name,self.age)
#
@classmethod
def test1(cls):
print(' ')
방법 전에 장식 기@classmethod 로 수식 합 니 다.첫 번 째 매개 변 수 는 cls 대표 클래스 입 니 다.클래스 방법 특징:클래스 방법 에 서 는 일반 방법 을 사용 할 수 없습니다.
3.2 유형 방법 호출
4.1 정적 방법 정의
class Person:
def __init__(self,name,age):
# name= name,age= age
self.name=name
self.age=age
# def __str__(self):
# return ' name:{}, age:{}'.format(self.name,self.age)
def run(self):
Person.test1()
Person.test()
print(' run')
@classmethod
def test1(cls):
print(' ')
@staticmethod
def test(*krgs):
Person.test1()
print(' ')
정적 방법 은 장식 기@staticmethod 로 수식 하고 cls,self 인자 가 없습니다.4.2 정적 방법 호출
대상 이름.정적 방법 이름()
클래스 이름.정적 방법 이름()
총화
일반 방법 중:
4
일반 방법 을 사용 할 수 없습니다.
일반 방법 을 사용 할 수 없습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.