반응형

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

반응형
반응형

'동빈나' 님의 유튜브 파이썬 강의 34장 내용 정리

모듈(Module)은 '미리 작성된 함수 코드를 모아 놓은 파이썬 파일' 이다.

더보기

정보처리기사 필기에서는 프로그램은 모듈화를 하는 것이 정의되어있다..(그랬었나..?)

C언어의 include나 JAVA의 import와 같이 파이썬 자체의 정의되어있는 라이브러리를 호출할 수 있다.

import math

print(math.pow(3, 8))
print(math.sqrt(64))
print(math.gcd(72, 24))

이 외 내부적으로 필요한 기능을 만든 후 호출에서 사용하는 것도 가능하다.

# lib라는 새로운 .py 파일을 만든다

def add(a, b):
    return a + b

def subtract(a, b):
    return a - b

위와 같이 파일을 만든 후 다른 파일에서 생성한 라이브러리를 사용할 수 있다.

# case 1
import lib
print(lib.add(1, 2));


# case 2
# 라이브러리의 크기가 클 때 특정 함수만 가져오겠다는 선언
from lib import add
print(add(2, 3))


# case 3
# 라이브러리 명칭이 길어서 가독성이 떨어질때 as를 써서 다른 별칭으로 사용할 수 있다
import lib as t
print(t.add(3, 7))

 

반응형

+ Recent posts