Python

Python2 04일차 수업 정리_03일차 복습, 클래스/객체, 생성자, 클래스 변수와 인스턴스 변수, 인스턴스/클래스/정적 메소드

어라연히프제 2024. 2. 14. 13:24

- 03일차 복습

- 클래스와 객체 그리고 생성자

- 클래스변수와 인스턴스 변수

- 인스턴스 메소드, 클래스 메소드, 정적 메소드

 


- 03일차 복습

 

3일치가 비는 이유는 그동안 배웠던거 리뷰해서 그냥 안씀!

 

클래스 : 똑같은 무엇인가를 계속 만들어 낼 수 있는 설계도면

(like 붕어빵틀)

클래스 기본 개념 정리

클래스 여러 변수와 함수(메소드)를 묶어서 처리할 수 있는 것
(보따리 같은 너낌)
속성 데이터 속성(값, 변수) + 메소드(기능, 처리)

 


- 클래스와 객체 그리고 생성자

클래스와 객체 객체는 클래스에 의해서 만들어진 결과물 (팥붕, 슈붕)
- 객체는 지정한 속성값에 따라 고유한 특징을 갖게 됨
- 객체의 데이터 속성은 변수로 구현, 행위는 함수(메소드)로 구형
- 객체를 만들기 위해서 클래스가 반드시 선언되어야 함 (팥붕 슈붕을 붕어빵 틀 없인 못만들엉)
클래스를 통해서 객체를 만들고 활용할 수 있는 프로그래밍 언어를 객체 지향 프로그래밍 언어라 함


클래스를 사용하는 정확한 이유 : 

하나의 클래스를 통해 여러개의 객체를 생성하므로 코드의 반복을 줄일 수 있다. 
메소드를 하나만 변경하더라도 객체 하나하나의 메소드를 일일이 바꿔줄 필요 없이 클래스 하나만 변경 함으로써 모든 객체에 영향을 줄 수 있다.

생성자 : 객체가 작성될 때 처음에 반드시 처리되는 메소드
클래스를 통해서 객체를 생성하는 순간 호출되는 특별한 메소드 (초기화 생성자를 입력하지 않으면 안보인 상태로 호출)
__init__(initalize) 처음에 초기화를 시켜준다는 의미 (파이썬에만 있데)

 

사용 방법 : 
def __init__(self, 매개변수1, 매개변수2,..) :
        self.데이터 속성명1 = 매개변수1
        ...


- 클래스변수와 인스턴스 변수

 

클래스 변수 모든 객체(인스턴스)가 동일한 값을 사용할 때, 모든 객체(인스턴스)들이 공유할 수 있는 변수
클래스명.클래스변수명
인스턴스 변수 self 키워드를 붙여 사용하는 변수를 말한다. 
객체명.인스턴스변수명 (이렇게 접근함)

 

인스턴스 변수는 self를 사용하고 클래스 변수는 self를 사용하지 않는다
인스턴스 변수는 객체를 통해서만 접근 가능하고 클래스 변수는 객체, 클래스명으로 접근가능
- 클래스에 인스턴스 변수를 사용하려고 하면 오류가 발생


- 인스턴스 메소드, 클래스 메소드, 정적 메소드

 인스턴스 메소드 인스턴스 변수를 사용하는 메소드를 의미
첫번째 매개변수에 self를 받아온다. self를 통해 인스턴스 변수에 접근 가능하다. (바구니 느낌)
- 생성된 객체를 통해서만 호출 가능 : 객체명. 인스턴스 메소드    
클래스 메소드 클래스변수를 사용하는 메소드를 의미
self X 인스턴스 변수 접근 X, cls를 통해 클래스 변수에 접근 가능
- 인스턴스나 클래스로 호출 가능
- 생성된 객체(인스턴스)가 없어도 호출 가능
@classmethod 데코레이터를 표시하고 작성
- 첫번째 매개변수에 cls를 사용
정적 메소드 self를 사용하지 않기 때문에 인스턴스 변수 사용 불가
인스턴스(객체)를 생성하지 않아도 사용 O 한 점이 클래스 메소드와 유사 (단, cls 사용 X)
인스턴스 변수, 클래스 변수를 모두 사용 X 한 경우 적절
- 인스턴스 또는 클래스를 통해 호출
- 생성된 인스턴스가 없어도 호출 가능
- @staticmethod 데코레이터를 표시하고 작성
- 반드시 작성해야할 매개변수가 없음

 

 

2024.02.14