Python - 클래스와 상속

황인용·2020년 1월 24일
0

Python

목록 보기
36/44

클래스(Class)와 인스턴스(Instance)

클래스(Class)

  • 반복되는 불필요한 소스코드를 최소화 하면서 현실 세계의 사물을 컴퓨터 프로그래밍 상에서 쉽게 표현할 수 있도록 해주는 프로그래밍 기술

인스턴스(Instance)

  • 인스턴스(Instance) : 클래스로 정의된 객체를 프로그램 상에서 이용할 수 있게 만든 변수

클래스 구성

클래스 멤버

  • 클래스 내부에 포함되는 변수

클래스의 함수

  • 클래스 내부에 포함되는 함수, 메소드
>>>class Car: 
  	def __init__(self, name, color): # 클래스의 생성자
    	self.name = name # 클래스의 멤버
    	self.color = color # 클래스의 멤버
  
  	def __del__(self): # 클래스의 소멸자
      print("인스턴스를 소멸시킵니다")
      
    def show_info(self): # 클래스의 메소드
    	print("이름:", self.name, "/ 색상:", self.color)
    
    def set_name(self, name): # Setter 메소드
      self.name = name
    
>>>car1 = Car("소나타", "빨간색")
>>>car1.show_info()

이름: 소나타 / 색상: 빨간색
    
>>>car2 = Car("아반떼", "검은색")
>>>car2.show_info()

이름: 아반떼 / 색상: 검은색
    
>>>print(car1.name, "을(를) 구매했습니다")

소나타 을() 구매했습니다

>>>car1.set_name("그랜져")
>>>print(car1.name, "을(를) 구매했습니다")

그랜져 을() 구매했습니다

>>> del car1

인스턴스를 소멸시킵니다

>>>car1.show_info()

NameError : name 'car1' is not defined

클래스의 상속

상속

  • 다른 클래스의 멤버 변수와 메소드를 물려 받아 사용하는 기법
  • 클래스를 매번 생성할 필요 없음
  • 부모와 자식관계가 존재함
  • 자식클래스 : 부모 클래스를 상속 받은 클래스
Class Unit:
	def __init__(self, name, power):
    	self.name = name
    	self.power = power
  
  	def attack(self):
    	print(self.name, "이(가) 공격을 수행합니다. [전투력:", self.power,"])

Class Monster(Unit):
  	def __init__(self, name, power, type):
         self.name = name
         self.power = power
         self.type = type
    def show_info(self):
    	 print("몬스터 이름:", self.name, "/몬스터 종류:", self.type)
              
>>> unit = Unit("홍길동", 375)
>>> unit.attack()

홍길동 이가 공격을 수행합니다 [전투력: 375]

>>> monster = Monster("슬라임", 10, "초급")
>>> monster.attack()

슬라임 이가 공격을 수행합니다 [전투력: 10]

>>> monster.show_info()

몬스터 이름: 슬라임 / 몬스터 종류: 초급

>>> unit.show_info()

Error!!
profile
dev_pang의 pang.log

0개의 댓글