Classes

김재효·2023년 2월 16일
0

클래스(classes) - 설계

클래스 예를 들어서 과자로 표현을 하면

  • 과자 틀 → 클래스 (class)
  • 과자 틀에 의해서 만들어진 과자 → 객체 (object)

클래스를 구성하는 메리트

  • 글로벌 변수를 없애고, 모든 변수를 어떠한 스코프에 소속시킨다.
  • 몇 번이고 재사용할 수 있다.
  • 코드의 수정을 최소화한다.
  • 함수 실행중에, 함수 자신을 다시 호출하는 처리 등이 가능하게 하다.
class 클래스 이름(대문자로 시작해야됨):
	def __init__(self,지정할 인수)

클래스를 사용한 코드는 다음과 같다

class Student:
    def __init__(self,name, major, is_graduated):
        self.name = name
        self.major = major
        self.is_graduated = is_graduated
    
    def study(self):
        print(f'{self.name} 학생을 공부 중입니다')

여기서 학생이라는 클래스 이름을 지정하였고 init함수를 사용해서 지정할 인수를 추가하였고 study함수를 만들어 지정한 인수를 사용해봤습니다.

# 인스턴스 - 실체화된 사물
student_1 = Student('김재효', '빅데이터응용학과',False)
print(student_1)

출력 결과: <__main__.Student object at 0x000001EFF4FB7AF0>
오루가 아니라 클래스에 지정한 인수가 잘 들어갔다는 결과

인수가 잘 들어갔는지 확인하기 위해 이름을 추출해봤습니다.

student_1_name = student_1.name
print(student_1_name)

출력 결과: 김재효

위에 study 함수를 이용해 출력을 해봤습니다.

student_1.study()

출력 결과: 김재효 학생을 공부 중입니다

객체지향 - 상속

# 상속(Inheritance)

class ForeignStudent(Student):
    def __init__(self, name, major):
        super().__init__(name, major)

foreign_stud_1 = ForeignStudent('이테킷','국어국문학과')
print(foreign_stud_1.name)
print(foreign_stud_1.major)
print(foreign_stud_1.is_graduated)
class ForeignStudent(Student):
    def __init__(self, name, major, country):
        super().__init__(name, major)
        self.country = country

    def study(self):
        print(f'{self.name} is studying now')

foreign_stud_1 = ForeignStudent('이테킷','국어국문학과', '미국')
foreign_stud_1.study()

0개의 댓글