반응형
파이썬 클래스에 대해 알아 보겠습니다.
여기서는 이해를 쉽게하기 위해서 사람(Person)의 이름과 나이를 표현해 봅니다.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def greet(self):
return f"안녕하세요, 저는 {self.name}이고 {self.age}살입니다."
# 사용 예제
person1 = Person("홍길동", 30)
print(person1.greet())
코드 설명
- __init__ 메서드:
- 클래스를 초기화하는 생성자 메서드입니다.
- name과 age를 매개변수로 받아 self.name과 self.age에 저장합니다.
- greet 메서드:
- 사람 객체의 이름과 나이를 출력하는 메서드입니다.
- 객체 생성 및 사용:
- Person("홍길동", 30)으로 이름이 "홍길동"이고 나이가 30인 사람 객체를 생성합니다.
- greet 메서드를 호출하여 해당 객체의 정보를 출력합니다.
파이선의 생성자는 오버로딩을 지원하지 않습니다.
즉, Person을 생성할 때
p1 = Person()
p2 = Person('홍길동', 22)
위의 2가지 방법으로 생성하기 위해서 아래와 같이 2개의 생성자를 정의할 수 없습니다.
__init(self)__
__init(self, name, age)__
생성자 오버로딩 문제는 생성자 매개변수의 기본값을 사용해서 해결할 수 있습니다.
생성자 매개변수의 기본값으로 생성자 오버로딩 표현
class Person:
def __init__(self, name="", age=0):
self.name = name
self.age = age
def info(self):
return f"이름: {self.name}, 나이: {self.age}"
# 사용 예제
p1 = Person()
print(p1.info())
p2 = Person("홍길동", 30)
print(p2.info())
상속
위에서 정의한 사람(person)을 상속받는 학생(Student) 클래서를 정의해 보겠습니다.
class Person:
def __init__(self, name="", age=0):
self.name = name
self.age = age
def info(self):
return f"이름: {self.name}, 나이: {self.age}"
class Student(Person):
def __init__(self, name, age, major, year):
super().__init__(name, age) #슈퍼 클래스의 생성자 호출
self.major = major
self.year = year
def info(self):
return f"이름: {self.name}, 나이: {self.age}, 학과: {self.major}, 학년: {self.year}"
p1 = Person()
print(p1.info())
p2 = Person("홍길동", 30)
print(p2.info())
s1 = Student('가나다',20,'컴퓨터공학', 2)
print(s1.info())
반응형
'Python > 파이썬 기초 강의(2024)★' 카테고리의 다른 글
파이썬, 텍스트 파일에 저장하기 읽어오기 (0) | 2024.11.27 |
---|---|
파이썬, 표준 모듈 목록, 모듈 내의 함수 목록 알아보기 (0) | 2024.11.26 |
파이썬, 터틀그래픽 사각형 그리기 모듈 (0) | 2024.11.24 |
파이썬: 모듈 사용하기 (0) | 2024.11.23 |
파이썬, 지역변수 전역변수 Local & Global Variable, global (0) | 2024.11.22 |