[Python] 파이썬

[Python] 파이썬 클래스 구성

ITsubin 2022. 9. 7. 20:12

클래스의 기본 구성

> 객체를 생성하기 위해서 클래스는 객체가 가져야 할 값과 기능을 지니고 있어야 함.

> 클래스 변수 : 클래스를 기반으로 생성된 모든 인스턴스들이 공유하는 변수

> 인스턴스 변수 : 모든 인스턴스들이 개별적으로 가지는 변수인 인스턴스 변수

> 클래스는 구성하는 함수는 "메소드"라고 함.

> 메소드는 특징에 따라 클래스 메소드, 정적 메소드, 인스턴스 메소드로 분리 가능.

 

인스턴스 변수와 메소드

인스턴스 변수

> 클래스 기반으로 만들어지는 모든 인스턴스들이 각각 따로 저장되는 변수

> 모든 인스턴스 변수는 self 라는 키워드를 앞에 붙여줌.

 

인스턴스 메소드

> 인스턴스 변수를 사용하는 메소드.

> 인스턴스 변수 값에 따라 각 인스턴스마다 다르게 동작.

> 인스턴스 메소드는 반드시 첫 번째 매개변수로 self를 추가.

class Person:
	def who_am_i(self, name, age, tel, address):
		self.name = name
		self.age = age
		self.tel = tel
		self.address = address
boy = Person()
print(boy.__dict__)
boy.who_am_i('john', 15, '123-1234', 'toronto')
print(boy.__dict__)
print(boy.name)
print(boy.age)
print(boy.tel)
print(boy.address)

girl = Person()
print(girl.__dict__)
girl.who_am_i('jane', 16, '567-8901', 'LA')
print(girl.__dict__)
print(girl.name)
print(girl.age)
print(girl.tel)
print(girl.address)

 

생성자와 소멸자

생성자

> 위에서는 값이 없는 인스턴스를 먼저 생성하고 인스턴스 값을 저장하는 메소드를 나중에 호출하여 인스턴스 생성.

> 하지만 이를 이용하지 않고 처음부터 값을 가지고 이쓴 인스턴스를 생성 가능하며,

   이를 가능하게 하는 것이 생성자.

> 생성자는 인스턴스를 생성할 때 자동으로 호출되는 특별한 메소드.

> 모든 클래스는 __init__()라는 생성자를 가짐.

class Person:
	def __init__(self, name, age, tel, address):
		self.name = name
		self.age = age
		self.tel = tel
		self.address = address

 

소멸자

> 인스턴스가 생성될 때 자동으로 생성되는 생성자와 마찬가지로,

   인스턴스가 소멸될 때 자동으로 호출되는 메소드를 소멸자라고 함.

> 소멸자는 __del__()이라는 이름을 가짐.