본문 바로가기
Base/Python

24. 클래스 문법 기본

by 귀멸 2023. 4. 20.

혼공파 80강

 

1. 클래스 기본 문법

# 클래스: 함수(와 변수)를 묶어 놓은 것
# → 객체를 만들어 내기 위한 설계도
# 스네이크 케이스 : create_student → 대부분
# 캐멀 케이스 : CreatStudent → 클래스 이름

# 클래스(설계도)
## 클래스가 갖는 모든 함수는 첫번째 매개변수로 self를 가져야한다.
## 클래스 이름과 같은 함수를 생성자(constructor)라고 부른다.
## __init__로 생성자를 만들 수 있다.
class  Student:
    # 클래스 내용
    def __init__(self, 이름, 국어, 영어, 수학, 과학):
        self.이름 = 이름
        self.국어 = 국어
        self.영어 = 영어
        self.수학 = 수학
        self.과학 = 과학
    def sum(self):
        return self.국어 + self.수학 + self.영어 + self.과학
    def average(self):
        return self.sum() / 4
    def print(self):
        print(self.이름, self.sum(), self.average(), sep="\t")

class StudentList:
    def __init__(self) :
        self.students = []
    def add(self, student):
        self.students.append(student)
    def print(self):
        print("이름", "총점", "평균", sep="\t")
        for student in self.students:
            student.print()


# 객체 = 인스턴스

인성 = Student("인성", 87, 88, 98, 95)

# 함수 호출 방법 (2) -> 주로 이용된다.
print(인성.이름, 인성.국어)
인성.sum()
인성.average()

students = StudentList()
students.add(Student("인성", 87, 88, 98, 95))
students.add(Student("구름", 92, 98, 97, 98))
students.add(Student("별이", 76, 96, 95, 90))

students.print()

# 왜 클래스를 쓰는가
# (1) 함수와 변수를 모았으므로 (응집했으므로) 가독성이 좋아지고 
#     코드 변경과 유지 보수 때 확인해야하는 범위가 줄어든다.
# (2) 클래스를 사용하는 사람이 클래스를 만든 사람의 의도에 따라 코드를 작성하게 만들어
#     코드 중복을 줄여 코드 변경과 유지 보수를 쉽게 만든다.

 

댓글