객체지향 (생성자와 소멸자 메서드)
이해하기 쉽고, 장황하지 않은 자료를 기반으로 강의를 진행합니다.
잔재미코딩 소식 공유
좀더 제약없이, IT 컨텐츠를 공유하고자, 자체 온라인 강의 사이트와 유투브 채널을
오픈하였습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
● 잔재미코딩 유투브 오픈
[구독해보기]
4. 예제로 이해하는 객체지향 문법 (생성자와 소멸자 메서드)¶
- 생성자는 객체 생성시 자동 호출, 소멸자는 객체 소멸시 자동 호출
생성자: __init__(self)¶
- method 이므로 첫 번째 인자는 self로 설정
- 생성자에서는 보통 해당 클래스가 다루는 데이터를 정의
이전에 다음과 같이 attribute 선언해보았음¶
In [44]:
class Quadrangle:
width = 0
height = 0
color = "black"
In [43]:
square = Quadrangle()
본 자료와 같이 IT 기술을 잘 정리하여, 온라인 강의로 제공하고 있습니다
체계적으로 전문가 레벨까지 익힐 수 있도록 온라인 강의 로드맵을 제공합니다
다음과 같이 클래스에서 self.attribute명을 사용할 수는 없음 (self는 객체를 나타냄)¶
In [45]:
class Quadrangle:
self.width = 0
self.height = 0
self.color = "black"
생성자에서 해당 클래스가 다루는 데이터를 정의하는 경우도 많음¶
한줄씩 보며 이해하는 객체!¶
In [46]:
class Quadrangle:
def __init__(self, width, height, color):
self.width = width
self.height = height
self.color = color
본 자료와 같이 IT 기술을 잘 정리하여, 온라인 강의로 제공하고 있습니다
가장 빠르게 풀스택 개발자가 될 수 있도록, 최적화된 로드맵을 제공합니다
In [47]:
square = Quadrangle()
In [51]:
square = Quadrangle(5, 5, "black")
In [52]:
square.width
Out[52]:
소멸자: __del__(self)¶
- method 이므로 첫 번째 인자는 self로 설정
- 클래스 소멸시 호출
In [49]:
class Quadrangle:
def __init__(self, width, height, color):
self.width = width
self.height = height
self.color = color
def __del__(self):
print("Quadrangle object is deleted")
square = Quadrangle(5, 5, "black")
본 자료와 같이 IT 기술을 잘 정리하여, 온라인 강의로 제공하고 있습니다
체계적으로 전문가 레벨까지 익힐 수 있도록 온라인 강의 로드맵을 제공합니다
- 객체 삭제 문법
- del 객체명
In [50]:
del square
초간단 연습3
* 정삼각형 클래스를 만들고, 정삼각형 이름하기
- attribute: 정삼각형 한 변의 길이, 삼각형 이름
- method: 정삼각형 이름 리턴
- 생성자에서 attribute 값 설정
- 소멸자작성 후, 객체 소멸시 object is deleted 출력
* 정삼각형 클래스를 만들고, 정삼각형 이름하기
- attribute: 정삼각형 한 변의 길이, 삼각형 이름
- method: 정삼각형 이름 리턴
- 생성자에서 attribute 값 설정
- 소멸자작성 후, 객체 소멸시 object is deleted 출력
In [57]:
import math
class Figure:
def __init__(self, length, name):
self.length = length
self.name = name
def get_area(self):
return (math.sqrt(3) / 2) * self.length**2 # (math.sqrt(3) / 2) * math.pow(self.length, 2) 도 가능함
def get_name(self):
return self.name
def __del__(self):
print ('object is deleted')
square = Figure(10, 'dave')
print (square.get_area(), square.get_name())
한발짝 더 나가보기!(심화 문제)
* 정삼각형 클래스를 만들고, 너비 출력하기
- attribute: 정삼각형 한 변의 길이, 삼각형 이름
- method: 정삼각형 너비 리턴
- 힌트: 정삼각형 한 변의 길이를 self.length 라고 할 때, 다음 식은 (math.sqrt(3) / 2) * self.length**2 와 같이 작성 가능 (import math 선언 후) $$ \frac{\sqrt{3}}{2} * 정삼각형 한변의 길이^2 $$
* 정삼각형 클래스를 만들고, 너비 출력하기
- attribute: 정삼각형 한 변의 길이, 삼각형 이름
- method: 정삼각형 너비 리턴
- 힌트: 정삼각형 한 변의 길이를 self.length 라고 할 때, 다음 식은 (math.sqrt(3) / 2) * self.length**2 와 같이 작성 가능 (import math 선언 후) $$ \frac{\sqrt{3}}{2} * 정삼각형 한변의 길이^2 $$
본 자료와 같이 IT 기술을 잘 정리하여, 온라인 강의로 제공하고 있습니다
가장 빠르게 풀스택 개발자가 될 수 있도록, 최적화된 로드맵을 제공합니다
In [22]:
# 한발짝 더 나가보기!(심화 문제)
# 정삼각형 클래스를 만들고, 너비 출력하기
import math
class Quadrangle:
def __init__(self, length):
self.length = length
def get_area(self):
return (math.sqrt(3) / 2) * self.length**2 # (math.sqrt(3) / 2) * math.pow(self.length, 2) 도 가능함
square = Quadrangle(10)
square.get_area()
Out[22]: