반응형

동빈나 님의 파이썬(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로 각 인스턴스를 확인해보면 서로 다른 메모리 공간에 할당된 것을 확인할 수 있다. 이는 여러번 호출하면 메모리에 부하를 일으 킬 수 있으므로, 사용 후 메모리 소멸을 해줘야 한다.

반응형

+ Recent posts