AngelPlayer`s Diary

클래스

객체를 생성하는 틀로, 속성과 메소드로 구성되어 있다.

클래스를 통해 생성한 객체를 인스턴스라고 한다. 

인스턴스를 통해 객체의 속성과 메소드를 사용할 수 있다.

class Human:
	name = 'AngelPlayer' # 클래스 변수
    
	def __init__(self):
		self.homepage = 'localhost:8080' # 인스턴스 변수

	def shout(self):
		print('Hi, My name is {}, My homepage is {}.'.format(self.name, self.homepage))
	
	def emoji(self):
		print('=_=')

person = Human()

print(person.name) # AngelPlayer
person.shout() # Hi, My name is AngelPlayer, My homepage is localhost:8080.
person.emoji() # =_=

 

 

- __init__ : 생성자

클래스의 인스턴스가 생성될 때 자동으로 호출되는 메소드로 인스턴스를 초기화 할 때 사용한다.

__init__ 생성자 내부에서 self.로 시작하는 변수들은 인스턴스 변수로서 인스턴스 내부에서만 사용이 가능하다.

self가 붙지 않는 변수는 지역 변수로써 메소드 내부에서만 사용가능하다.

 

 

- __del__ : 소멸자

인스턴스가 메모리에서 제거될 때 자동으로 호출되는 메소드이다.

일반적으로 더 이상 참조가 이루어지지 않는 인스턴스는 GC에 의해 메모리에서 자동으로 제거되지만, 명시적으로 인스턴스를 제거할 때 del

 

 

 

상속

상속이란 기존에 있는 클래스(부모 클래스)의 속성과 메소드를 그대로 이어받는 새로운 클래스(자식 클래스)를 만들고자 할 때 사용한다.

자식 클래스는 여러 부모를 가질 수 있으며, 부모의 속성과 메소드를 이용할 수 있다.

부모가 가지고 있던 속성이나 메소드가 상속받은 자식에 동일하게 정의된다면 자식 클래스에 정의된 속성이나 메소드가 사용된다.

class Human:
	name = 'AngelPlayer' # 클래스 변수
    
	def __init__(self):
		self.homepage = 'localhost:8080' # 인스턴스 변수

	def shout(self):
		print('Hi, My name is {}, My homepage is {}.'.format(self.name, self.homepage))
	
	def emoji(self):
		print('=_=')


class Blogger(Human):
	def __init__(self):
		self.homepage = 'angelplayer.tistory.com'

	def emoji(self):
		print("ㅇㅂㅇ")
		super().emoji() # 부모의 메소드 사용 시

blogger = Blogger()

blogger.shout() # Hi, My name is AngelPlayer, My homepage is angelplayer.tistory.com.
blogger.emoji() # ㅇㅂㅇ\n=_=

 

 

 

공유하기

facebook twitter kakaoTalk kakaostory naver band