[22.07.20] Python Class
클래스 정리
#클래스 #속성 #인스턴스 #메서드
간단한 비유
회사에서 신입사원을 뽑기 위해 서류를 받는다. 이름, 나이, 학교, 번호 등 정보들이 있다.
효율적으로 정보를 얻기위해서는 자기소개서 양식을 정하여 작성하도록 해야한다.
자기소개서 양식 안에는 이름, 나이, 주소, 학교, 번호 등이 있다.
자기소개서 양식 => 클래스
이름, 나이, 학교, 번호 항목 => 클래스 속성
지원자 김준환, 홍길동, 이철수, 김영희 => 인스턴스
KDT과정 수료 여부를 판단하여 수료 하였을 경우 통과 => 메서드
class IntroDuce:
title = 'Happy Coding' # 클래스 변수 정의
def __init__(self, name, age, school, number, kdt): # 초기 실행
self.name = name
self.age = age
self.school = school
self.number = number
self.kdt = kdt
def kdt(self):
if kdt = True:
print('합격입니다')
else:
print('보류')
junhwan = IntroDuce('김준환', 25, 'KNU', 01012345678, True)
print(junhwan.name) # '김준환'
junhwan.kdt() # 합격입니다.
junhwan.name = '홍길동'
print(junhwan.name) # '홍길동' => 변경 가능
클래스 속성
- 한 클래스의 모든 인스턴스가 같은 값을 가지고 있는 속성
메소드
-
클래스 메소드
- 클래스가 사용할 메소드
@classmethod
데코레이터를 사용하여 정의- 호출 시, 첫 번째 인자로 클래스(cls)가 전달됨
class MyClass: @classmethod def class_method(cls, arg1, …):
-
스태틱 메소드
- 인스턴스 변수, 클래스 변수를 전혀 다루지 않는 메소드
- 속성을 다루지 않고 단지 기능만을 하는 메소드를 정의할 때 사용
@staticmethod
데코레이터를 사용하여 정의- 호출 시, 어떠한 인자도 전달되지 않음
class MyClass: @staticmethod def class_method(arg1, …):
상속
- 하위 클래스는 상위 클래스에 정의된 속성, 행동, 관계 및 제약 조건을 모두 상속 받음
- 부모 클래스의 속성, 메소드가 자식 클래스에 상속되므로, 코드 재사용성이 높아짐
class ChildClass(ParentClass):
pass
-
상속 관련 함수와 메소드
-
super()
자식 클래스에서 부모 클래스를 사용하고 싶은 경우
class IntroDuce: title = 'Happy Coding' # 클래스 변수 정의 def __init__(self, name, age, school, number, kdt): # 초기 실행 self.name = name self.age = age self.school = school self.number = number self.kdt = kdt class Team: def __init__(self, name, age, school, number, kdt, team_name): super().__init__(name, age, school, number, kdt) self.team_name = team_name
-