Class

이현진·2023년 4월 1일
0

알고리즘

목록 보기
9/9
post-thumbnail

클래스에 대해 자신이 없어서인지, 익숙하지 않아서인지 문제를 풀면서 은연 중에 클래스 사용을 피해온 것 같아 다시 한번 정리해보려 한다.

클래스란?

클래스는 금형과 같이 똑같은 무엇인가를 계속해서 만들어 낼 수 있는 것이고, 이것으로 만들어 낸 것을 객체라 한다.

철수 = Student()
영희 = Student()

Student는 클래스, 철수영희는 객체인 셈이다.

객체와 인스턴스
클래스로 만들어 진 것을 단독으로 설명할 때 주로 객체라 한다. "철수영희는 각각 객체이다."
단, 클래스와 객체의 관계를 위주로 설명해야 할 때는 주로 인스턴스라 부른다. "철수영희Student의 인스턴스이다."

클래스 정의

학생의 국어, 영어, 수학 성적을 포함하는 Student 클래스는 이처럼 정의할 수 있다.

class Student:
    def __init__(self, kor, eng, math):
        self.kor = kor
        self.eng = eng
        self.math = math

클래스 내의 __init__라는 함수는 클래스의 형태를 정의하며, 생성자(constructor)라 불린다. Student를 지칭하는 self를 항상 첫 번째 인자로 포함한다.

학생은 국어, 영어, 수학에 해당하는 kor, eng, math 속성을 지니는데, 이를 멤버 변수라 부른다. 멤버 변수 이름으로 해당 값에 접근할 수 있다.

철수 = Student(90, 80, 70)

print(철수.kor)
# 90

클래스 값 변경

아직까지는 학생의 국어, 영어, 수학 성적을 모두 알아야 객체를 생성할 수 있다.

# 철수의 수학 성적이 아직 안나왔다면?
철수 = Student(90, 80)

>>> __init__() missing 1 required positional arguments: 'math'

그러나 아래처럼 정의할 때 초기값을 설정해준다면, 추후에 값을 변경할 수도 있다.

class Student:
    def __init__(self, kor=0, eng=0, math=0):
        self.kor = kor
        self.eng = eng
        self.math = math
        
        
철수 = Student()
철수.kor = 90
철수.eng = 80
profile
세상의 모든 지식을 담을 때까지

0개의 댓글