글을 시작하기 전에 클래스와 객체, 인스턴스, 상속의 개념에 대해서는 아래 글을 참고해 주세요.
클래스
클래스 생성
class 클래스명:
클래스 변수 = 값
def __init__(self, 매개변수...):
# 생성자 내용
def __del__(self):
# 소멸자 내용
@classmethod
def 클래스함수(cls, 매개변수...):
# 클래스 함수 내용
일반 메서드(self, 매개변수...):
# 일반 메서드 내용
클래스 내부의 함수들은 첫 번째 매개변수로 반드시 self를 사용해야 합니다. self는 현재 클래스의 멤버를 참조할 때 사용합니다.
❓ self는 자바, 코틀린의 this와 같은 개념인가요?
비슷하지만 약간의 차이점이 있습니다. this와 달리 self는 명시적으로 첫 번째 매개변수로 선언되어야 하며 클래스 내부에서 멤버들에 접근할 때 반드시 self. 를 사용하여 참조해야 합니다.
❓ 클래스 변수와 클래스 함수는 뭔가요?
클래스 변수와 함수는 인스턴스 없이 클래스명으로 접근할 수 있는 변수와 함수입니다. 다음과 같이 접근합니다.
클래스 함수는 @classmethod를 붙여 선언하며, self 대신 cls 매개변수를 넣어주어야 합니다.
클래스명.변수명
클래스명.함수명(매개변수)
생성자
# 사용
클래스명()
# 선언
def __init__(self, 매개변수...):
# 생성자 내용
클래스명을 사용해 함수처럼 호출하면 해당 클래스의 인스턴스가 생성됩니다. 기본적으로 함수와 동일한 성질을 갖습니다. 생성자는 보통 프로퍼티를 초기화할 때 사용합니다.
소멸자
def __del__(self):
소멸자는 인스턴스가 가비지 컬렉터에 의해 지워지거나, 프로그램이 종료될 때 실행됩니다.
접근 제어자
파이썬에서는 접근 제어자 (자바나 코틀린의 public, protected, public 등)을 직접적으로 명시해서 사용하지 않습니다. 특별한 명명규칙에 따라 변수의 접근 허용 범위가 달라집니다.
1. 기본적으로 클래스, 메서드, 속성은 public입니다.
2. protected(같은 클래스 혹은 하위 클래스에서 접근하도록 권장)으로 설정하고 싶다면 _를 붙입니다. 예시) _variable
3. private(같은 클래스에서만 접근 가능)으로 설정하고 싶을 때는 변수명 앞에 __를 붙여줍니다. 예시) __variable
getter / setter
private 변수를 외부에서 참조하고 변경하려 할 때는 getter와 setter를 설정해 주면 됩니다.
파이썬에서는 데코레이터를 사용해 getter와 setter를 쉽게 만들 수 있습니다.
class Class:
@property
def 변수명(self):
게터 내용
@변수명.setter
def 변수명(self, value):
세터 내용
상속
class 하위클래스명(상위클래스명):
def __init__(self):
super.__init__()
클래스명 옆에 상속받을 상위 클래스명을 괄호 () 안에 입력합니다.
생성자의 가장 첫 문장으로 상위클래스의 생성자를 호출해야 합니다.
isinstance()
insinstance(인스턴스, 클래스)
인스턴스가 해당 클래스로부터 만들어졌는지 확인하는 함수입니다. 클래스 부분에 인스턴스의 부모 클래스를 넣어도 True를 반환합니다.
'개발공부 > Python : 파이썬' 카테고리의 다른 글
파이썬 훑어보기 9 - 부록(입출력, 날짜) (0) | 2024.12.23 |
---|---|
파이썬 훑어보기 7 - 모듈 (1) | 2024.12.21 |
파이썬 훑어보기 6 - 예외 처리 (1) | 2024.12.18 |
파이썬 훑어보기 5 - 함수 (1) | 2024.12.17 |
파이썬 훑어보기 4 - 컨테이너 자료형 (0) | 2024.12.16 |