본문 바로가기

Programming/Python35

[클래스] 상속 관계와 포함 관계 # 상속 관계 - Student 클래스는 Person 클래스를 상속받아서 만들었다. class Person : def greeting(self) : print("안녕하세요") class Student(Person) : def study(self) : print("공부하기") 여기서 학생 Student 는 사람 Person 이므로 같은 종류입니다. 이처럼 상속은 명확하게 같은 종류이며 동등한 관계일 때 사용합니다. 즉, "학생은 사람이다." 라고 했을 때 말이 되면 동등한 관계입니다. 그래서 상속 관계를 영어로 is-a 관계라고 부릅니다. (Student is a Person) # 포함관계 학생 클래스가 아니라 사람 목록을 관리하는 클래스를 만든다면 ? 리스트 속성에 Person 인스턴스를 넣어서 관리하면.. 2023. 3. 13.
[클래스] 상속 사용하기 [참고] 저자 본인의 공부 및 참고용으로 쓰여진 글인점을 알려드립니다. # 코딩도장의 내용입니다. https://dojang.io/mod/page/view.php?id=2384 파이썬 코딩 도장: 36.1 사람 클래스로 학생 클래스 만들기 Unit 36. 클래스 상속 사용하기 지금까지 클래스의 기본적인 사용 방법을 알아보았습니다. 이번에는 클래스 상속(inheritance)을 사용해보겠습니다. 상속은 무언가를 물려받는다는 뜻입니다. 그래서 dojang.io 클래스 상속 (inheritance) 사용 상속 : 무언가를 물려받는다는 뜻 클래스 상속 : 물려받은 기능을 유지한채로 다른 기능을 추가할 때 사용하는 기능. 기반 클래스(base class) : 기능을 물려주는 클래스 ; 부모 클래스(parent c.. 2023. 3. 13.
[클래스] 클래스 메서드 사용하기 정적 메서드와 비슷하지만 약간의 차이점이 있는 클래스 메서드 클래스 메서드는 다음과 같이 메서드 위에 @classmethod 를 붙인다. 이때 클래스 메서드는 첫 번째 매개변수에 cls 를 지정해야 한다(cls : class) class 클래스이름 : @classmethod def 메서드(cls, 매개변수1, 매개변수2 ... ) : > class Person : count = 0 # 클래스 속성 # __init__ : 인스턴스가 만들어졌습니다 ~ def __init__(self): Person.count += 1 # 인스턴스가 만들어질 때 클래스 속성 count 에 1을 더함. @classmethod def print_count(cls) : print('{}명 생성되었습니다'.format(cls.cou.. 2023. 3. 13.
[클래스] 정적메서드 사용하기 지금까지 클래스의 메서드를 사용할 때 인스턴스를 통해서 호출했습니다. 이번에는 인스턴스를 통하지 않고 클래스에서 바로 호출할 수 있는 정적 메서드와 클래스 메서드에 대해 알아보겠습니다. class 클래스이름 : @staticmethod def 메서드(매개변수1, 매개변수2) : 정적 메서드 : 정적 메서드는 다음과 같이 메서드 위에 @staticmethod 를 붙인다. 이때 정적 메서드는 매개변수에 self를 지정하지 않는다. @staticmethod 처럼 앞에 @이 붙은 것을 데코레이터라고 하며 메서드(함수)에 추가 기능을 구현할 때 사용한다. class Calc: @staticmethod def add(a, b) : print(a + b) @staticmethod def mul(a, b) : prin.. 2023. 3. 13.