[Zero-base 데이터분석] Python중급_객체지향 프로그래밍

박지은·2023년 9월 30일
post-thumbnail

🖥️ 객체지향 프로그래밍

◾ 객체를 이용한 프로그램으로 객체는 속성과 기능으로 구성
◾ 일상생활의 객체를 프로그램으로 가져와서 소프트웨어로 만든 것
◾코드 재사용, 모듈화에 효과적

1. 클래스와 객체 생성

◾ 클래스는 class 키워드와 속성(변수) 그리고 기능(함수)를 이용해서 제작
◾ 객체는 클래스의 생성자를 호출
◾ class는 reference변수 사용하여 기능 실행
class Car:  # 클래스 선언

    def __init__(self, col, len):  # 생성자, 속성
        self.color = col
        self.length = len   

    def doStop(self):  # 기능
        print('STOP')

    def doStart(self):  # 기능
        print('START!!')

car1 = Car('red', 200)  # 객체 2개 생성
car2 = Car('blue', 300)

2. 객체 속성 변경

◾ 객체 속성 변경 가능!!
class NewGenerationPC:
    def __init__(self, name, cpu, memory, ssd):
        self.name = name
        self.cpu = cpu
        self.memory = memory
        self.ssd = ssd

    def doExcel(self):
        print('Excel Run!!')

    def doPhotoshop(self):
        print('Photoshop Run!!')

    def printPCInfo(self):
        print(f'self.name = {self.name}')
        print(f'self.cpu = {self.cpu}')
        print(f'self.memory = {self.memory}')
        print(f'self.ssd = {self.ssd}')

myPc = NewGenerationPC('myPC', 'i5', '16G', '256G')
myPc.printPCInfo()

myPc.cpu = 'i9'
myPc.memory = '64G'
myPc.ssd = '1T'
myPc.printPCInfo()
-----------------------------------------------------------------------
self.name = myPC
self.cpu = i5
self.memory = 16G
self.ssd = 256G
self.name = myPC   # 변경된 값 출력
self.cpu = i9
self.memory = 64G
self.ssd = 1T

3. 객체와 메모리

◾ 변수는 객체의 메모리 주소를 저장하고 객체를 참조
◾ 얕은 복사 : 객체 주소를 복사하는 것으로 객체 자체 복사 X
◾ 깊은 복사 : 객체 자체를 복사하는 것으로 또 하나의 객체가 생성
profile
예비 분석가

0개의 댓글