지 구 여 행
[나도코딩 필기노트] 파이썬 기본편 강의 (5) 본문
⊙ 클래스(Class) :
하나의 틀 / 서로 연관이 있는 변수와 함수의 집합 예) 붕어빵 틀=Class(클래스) / 붕어빵 하나=Object(객체)
클래스를 통해 생성되는 객체 = 인스턴스(instance)
예제1)
예제2)
⊙ __init__() :
'인스턴스'가 생성될 때 = 클래스가 실행될 때, 반드시 맨 처음 호출되는 특수 함수 (how Class initiates)
반드시 첫번째 인수로 self를 지정 → 함수값을 멤버변수와 함께 외부에서도 사용 가능케 함
⊙ 멤버변수 :
클래스 내 정의된 변수 → 클래스 외부에서 변수가 확장되어 사용가능
예) self.name , self.hp, self.damage
⊙ (인스턴스)메소드 :
예) def attack() 또는 def attacked()등
클래스 내 선언된 메소드는 클래스 내 '(인스턴스) 메소드'로 취급
첫번째 매개변수는 항상 self
+) 추후 알아볼 개념 : 정적(static)메소드 / 클래스(class)메소드
⊙ 상속(inheritance) :
다른 클래스에서 중복 사용되는 코드 → 상속(inheritance)를 통해 변수값 치환가능
예)
class Unit :
def __init__(self,name,hp,speed):
self.name=name
self.hp=hp
self.speed=speed
class Machinery(Unit):
def __init__(self,name,hp,damage):
Unit.__init__(self,name,hp) # 다른 클래스로부터 '상속'을 통해 변수값 받을 때는 처음에 변수를 선언해준다.
self.damage=damage
print("\n{} 유닛이 생성되었습니다.".format(self.name))
print("체력(hp) : {}, 공격력(damage) :{}".format(self.hp,self.damage))
⊙ 다중 상속(multiple inheritance) :
2개 이상의 클래스로부터 변수값을 상속받는 경우
예)
class combatplane(Machinery,Flyable):
def __init__(self,name,hp,damage,speedrate):
Machinery.__init__(self,name,hp,damage) # 각 클래스마다 불러오는 변수값 선언
Flyable.__init__(self,speedrate)
print("\n{} 유닛이 생성되었습니다.".format(self.name))
print("체력(hp) : {},공격력(damage) : {},비행속도(speed rate) : {}".format(self.hp,self.damage,self.speedrate))
⊙ 메소드 오버라이딩(method overiding) :
상속받은 부모 클래스의 메소드를 재정의하여 사용하는 것
=(부모의 메소드가 아닌) 자식의 메소드를 쓰고 싶을 때, 메소드를 새롭게 정의해서 사용 가능
= 클래스 내 메소드 사용시, 기존 메소드 무시하고 같은 이름(move())의 새로운 메소드로 초기화
예)
지상 유닛의 이동 커맨드 메소드 = move
공중 유닛의 이동 커맨드 메소드 = fly
→ 매번 지상or공중 유닛인지 체크 비효율적 → 'move' 메소드 하나로 메소드 오버라이딩을 통해 통일
※ 출처 : https://youtu.be/kWiCuklohdY
'필기노트 > 나도코딩' 카테고리의 다른 글
[나도코딩 필기노트] 파이썬 기본편 강의 (7) (0) | 2022.06.17 |
---|---|
[나도코딩 필기노트] 파이썬 기본편 강의 (6) (0) | 2022.06.11 |
[나도코딩 필기노트] 파이썬 기본편 강의 (4) (0) | 2022.06.03 |
[나도코딩 필기노트] 파이썬 기본편 강의 (3) (0) | 2022.06.02 |
[나도코딩 필기노트] 파이썬 기본편 강의 (2) (0) | 2022.05.29 |