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