진짜 개발자
본문 바로가기

Language/Python

Python - 클래스(Class)란?

728x90

Class가 필요한 이유?

- 어떤 변수에만 적용되는 함수가 존재할 때 이를 유지보수 하기 쉬운 코드로 만들 수 있다


예시) 

1. Class 가 없을때

1) 예를들어 통장을 관리하는 함수 deposit()를 만들었다고 치자

    이 함수는 balance1계좌만을 관리하는 함수라는 점을 기억하자


2) 이때 또다른 통장이 생성되었다

=> 한눈에 보아도 각통장마다 함수를 만들어 주어야 하므로 매우 비효율적이다 

     이는 유지보수에도 좋지 않다 왜냐하면 이함수의 변동이 일어나는 경우 모든 함수를 바꾸어주어야 하기 때문이다


3) 각 계좌에서 출금하는 함수를 만든다면 모든 계좌에 대해 그 함수를 추가해주어야 한다


2. Class 도입

1) 클래스를 도입하면 아래와 같이 하나의 클래스를 통해 여러개의 객체를 생성 하므로써

   코드의 반복을 줄일 수 있다.


2) 또한 메소드 하나를 변경하더라도 객체 하나하나의 메소드를 일일이 바꾸어줄 필요없이 

   클래스 하나만을 변경하므로써 모든 객체에 영향을 줄 수 있다.




Class란?

- 객체를 생성해 내기 위한 청사진이다



객체란?

- Class를 통해 생성된 것



인스턴스 변수란?

- 객체내에서 생성된 변수로 그객체가 소유한 변수를 일컫는다



self란?

- 해당 클래스를 통해 생성된 객체 그자신을 가리키는 것

- 아래 그림과 같이 self 매개변수에는 객체 자신이 자동으로 넘어간다



Class 사용법

1. 생성

- account1 = Account()


- Account() 를 하게되면 클래스에 해당하는 객체를 메모리에 생성하고 그메모리의 주소를 리턴한다



2. 사용

- '.' 을 이용하여 해당 객체의 변수 및 메소드를 이용할 수 있다.




Class를 작성할 시 주의점

- python 스크립트는 Class를 생성할 시 아무런 내용을 기입하지 않으면

  다음에 오는 문장들을 들여쓰기를 하지 않더라도 Class내부의 코드로 인식하기 때문에 

 들여쓰기를 하라는 오류가 나타난다 

 따라서 당장 클래스내에 아무런 코드가 필요하지 않다면 pass라는 예약어를 통해 파이썬 스크립트에 인식시켜주어야 한다