반응형
동빈나 님의 파이썬(Python) 입문자용 초급 35강 내용을 정리하였습니다.
클래스(Class) : 반복되는 불필요한 소스코드를 최소화 하면서 현실 세계의 사물을 컴퓨터 프로그래밍 상에서 쉽게 표현할 수 있도록 해주는 프로그래밍 기술
인스턴스(instance) : 클래스로 정의된 객체를 프로그램 상에서 이용할 수 있게 만든 변수
클래스의 멤버 : 클래스 내부에 포함되는 변수
클래스의 함수 : 클래스 내부에 포함되는 함수. 메소드라고 부름.
class Car:
# 클래스의 생성자
def __init__(self, name, color):
self.name = name # 클래스의 멤버1
self.color = color # 클래스의 멤버2
#클래스의 소멸자
def __del__(self):
print("인스턴스가 소멸되었습니다")
# 클래스의 메소드
def show_info(self):
print("이름 : ", self.name, '/ 색상 : ', self.color)
위와 같이 클래스를 선언 한 후 인스턴스를 생성해서 사용하면 된다.
car1 = Car("소나타", "빨간색")
print(car1.name, '을(를) 구매했습니다!')
car1.show_info()
del car1 # 인스턴스를 메모리에서 삭제
생성자를 통해 클래스 멤버의 값을 직접 정의 해 줄 수도 있지만 다른 언어에서는 보안상의 이유로 getter/setter를 많이 이용한다 ! 이처럼 파이썬도 동일하게 할 수 있다.
# Class에 Setter 메소드 추가
def set_name(self, name):
self.name = name
car1.set_name("크루져")
car1.show_info()
동일한 방식으로 다른 객체를 생성할 수 있다.
car2 = Car("아반떼", "검은색")
car2.show_info()
그러면 car1과 car2는 같을까? 다르다 !
print(car1 == car2) # 결과 : false
print(car1) # 결과 : <__main__.Car object at 0x037AB0D0>
print(car2) # 결과 : <__main__.Car object at 0x00DAB370>
print로 각 인스턴스를 확인해보면 서로 다른 메모리 공간에 할당된 것을 확인할 수 있다. 이는 여러번 호출하면 메모리에 부하를 일으 킬 수 있으므로, 사용 후 메모리 소멸을 해줘야 한다.
반응형
'Python > Basic' 카테고리의 다른 글
[파이썬/Python] 파이썬 문자열 함수 (len, isalpha, isdigit, isalnum, join, sorted, split, find, upper, lower, strip, eval) (0) | 2020.03.20 |
---|---|
[파이썬/Python] 파이썬 내장함수(input, int, float, max, min, bin, hex, round, type) (2) | 2020.03.17 |
[파이썬/Python] 파이썬 모듈, 라이브러리 만들기 (0) | 2020.03.17 |
[파이썬/Python] 파이썬 함수(가변인자, 지역변수, 전역변수) (0) | 2020.03.17 |
[파이썬/Python] 파이썬 시퀀스 자료형(문자열, 리스트, 튜플) (0) | 2020.03.17 |