반응형
○ 상속
- 물려주는 클래스
- 부모클래스가 자식클래스에게 변수와 메소드를 물려준다.
- class 자식클래스(부모클래스) 형태로 사용된다.
class human:
def __init__(self, name, age):
self.name = name
self.age = age
def Home(self, location):
print("{0} 의 집은 {1}입니다. ".format(self.name, location))
class student(human): #human 클래스를 상속받아 student 클래스는 자식클래스가 된다
def __init__(self, name, age, grade):
human.__init__(self, name, age)
self.grade = grade
print("{0}이고 나이는 {1} 이며, {2}학생입니다.".format(self.name, self.age, self.grade))
class worker(human): #human 클래스를 상속받아 worker 클래스는 자식클래스가 된다
def __init__(self, name, age, salary):
human.__init__(self, name, age)
self.salary = salary
print("{0}이고 나이는 {1} 이며, 연봉은 {2} 입니다.".format(self.name, self.age, self.salary))
hong = student( "홍길동",17,"고등" )
lim = worker("임꺽정", 29, "5000만원" )
결과화면
○ 다중 상속
- 여러개의 클래스에서 상속을 받는 개념
class human:
def __init__(self, name, age):
self.name = name
self.age = age
def Home(self, location):
print("{0} 의 집은 {1}입니다. ".format(self.name, location))
class korean:
def __init__(self, location, doyouknow ):
self.location = location
self.doyouknow = doyouknow
print("Do you Know {0} ??".format(self.doyouknow))
class student(human, korean): #human, korean 두개의 클래스는 상속 받는다
def __init__(self, name, age, grade, location, doyouknow ):
human.__init__(self, name, age)
korean.__init__(self, location, doyouknow)
self.grade = grade
print("{0}이고 나이는 {1} 이며, {2}학생입니다.".format(self.name, self.age, self.grade))
hong = student( "홍길동",17,"고등", "서울", "BTS" )
결과화면
○ 메소드 오버로딩
- 부모클래스에서 정의한 메소드를 자식 클래스에서 재정의 하는 것
class human:
def __init__(self, name, age):
self.name = name
self.age = age
def Home(self, location):
print("{0}의 집은 {1}입니다. ".format(self.name, location))
class korean:
def __init__(self, location, doyouknow ):
self.location = location
self.doyouknow = doyouknow
def likefood(self, food):
print("{0} 음식을 좋아합니다.".format(food))
class student(human, korean):
def __init__(self, name, age, grade, location, doyouknow ):
human.__init__(self, name, age)
korean.__init__(self, location, doyouknow)
self.grade = grade
def like(self): #메소드 오버로딩
print("김치")
self.likefood("콘치즈") #korean 클래스의 메소드 오버로딩.
self.Home(self.location) #human 클래스의 메소드 오버로딩.
hong = student( "홍길동",17,"고등", "서울", "BTS" )
hong.like()
결과화면
like 함수의 print 문과 korean클래스의 likefood 와 human클래스의 Home이 출력되는 것을 볼 수 있다.
○ Pass
- 아무것도 하지 않고 일단은 넘어 간다
- 실행 할 것이 아무 것도 없다는 것을 의미, 아무런 동작을 하지 않고 다음 코드를 실행
class Building():
def __init__(self, name, location):
pass #아무것도 안하고 일단은 완성된것처럼 넘어간다
##################################################
def game_start():
pass
○ Super
- 자식클래스에서 부모클래스의 정보를 사용하고 싶을경우
- 다중상속일 경우 상속받는 부모의 제일 처음 부분만 상속 받는다.
- super().부모클래스내용
class korean:
def __init__(self, location, doyouknow ):
self.location = location
self.doyouknow = doyouknow
class student(korean):
def __init__(self, grade, location, doyouknow ):
super.__init__(self, location, doyouknow) #super 사용
self.grade = grade
2021/02/04 - [개발/python] - [파이썬] class 정리- 사용법
반응형
'프로그래밍언어 > python' 카테고리의 다른 글
[파이썬] Pypi 패키지 만들기 및 배포하기 (0) | 2022.02.09 |
---|---|
[파이썬] class 정리- 사용법 (0) | 2021.02.04 |
[파이썬] pickle 피클 사용법 (0) | 2021.02.03 |
[파이썬] 파일입출력(file IO) 읽고 쓰기 (0) | 2021.01.23 |
[파이썬] 출력옵션(정렬, 콤마, 소수점) (0) | 2021.01.19 |
댓글