728x90
반응형
1. 클래스
- 코드를 어떤 행위에 따라 분리함
- 반복적으로 불러와서 수행해야 하는, 코드들을 함수로 묶음
1.1. 기본형
- 클래스 만들기
class name:
def function (self):
Variable
statement
# name: 클래스의 이름
# function: 함수의 이름
# Variable: 생성자 안에서, 클래스에 쓰일 변수를 초기화
# statement: 클래스 하위에 존재하는 코드
# self: 호출한 객체 자신을 의미함. 보통은 첫번째 매개변수로 많이 부여함.
- 클래스 인스턴스 만들기
# 인스턴스 선언하기
instance = classname()
# 클래스의 함수에 접근하기
instance.function()
# instance: 클래스의 주소를 저장하는 변수
self 키워드
- self는 객체 자신을 의미한다. 자세한 설명 보기
- 객체에 저장되어 있는 변수를 불러올 수 있다.
private 멤버
- __ 키워드를 통해, private로 설정가능
- 객체 내부에서만 private멤버에 접근이 가능
2.2. 예시
class calculate:
__num3 = 2 # private 멤버 변수
def __init__(self, num1, num2): # 생성자
self.num1 = num1
self.num2 = num2
# 인자로 준 값이 self로 넘어가게 된다.
def plus(self):
return self.num1 + self.num2
def sub(self):
return self.num1 - self.num2
def multi(self):
print("나눗셈 : ",self.__divide())
return self.num1 * self.num2
def __divide(self): # private 메소드
return self.num1 / self.__num3
c1 = calculate(10,20)
print("덧셈 : ",c1.plus())
print("뺄셈 : ",c1.sub())
print("곱셈 : ",c1.multi())
c2 = calculate(30,40)
print("덧셈 : ",c2.plus())
print("뺄셈 : ",c2.sub())
print("곱셈 : ",c2.multi())
2. 상속
2.1. 기본형
- 이미 선언되어 있는 클래스를 가져다 쓰는 기법
- 원래 있는 클래스는 부모클래스, 부모 클래스의 내용을 받는 클래스를 자식클래스라고 한다.
- 자식 클래스는 부모클래스의 멤버변수, 함수를 사용할 수 있다. 그 역은 불가능하다.
class name(parent class):
statement
# name: 클래스의 이름
# parent class: 부모 클래스
2.2. 예시
class company:
def print(self):
print("회사입니다.")
class apple(company):
pass
c = apple()
c.print() # company 클래스의 print 함수 실행
2.3. 오버라이딩
- 부모클래스에 선언된 함수와 자식클래스의 선언된 함수의 이름이 같다면,
- 자식클래스의 함수를 우선 실행하는 기법
class company:
def print(self):
print("회사입니다.")
class apple(company):
def print(self):
print("Apple은 회사입니다.")
c = apple()
c.print() # apple 클래스의 print 함수 실행
2.4. 추상클래스
- 클래스의 최소 스펙을 정의한 함수. (자바의 인터페이스와 같은 개념이다.)
- 추상 클래스의 메소드는 내용은 없지만, 상속받는 클래스에서 내용이 정의됨
- abstractmethod가 import되어 있어야 함
- @abstractmethod 데코레이터로 추상메소드를 표시해야 함
from abc import abstractmethod
class computer():
@abstractmethod
def cpu(self):
pass
@abstractmethod
def motherboard(self):
pass
class my_pc(computer):
def cpu(self):
print("라이젠")
def motherboard(self):
print("기가바이트")
pc = my_pc()
pc.cpu()
pc.motherboard()
반응형
'컴퓨터 관련 > 파이썬' 카테고리의 다른 글
[파이썬] 10. 고급기능 (2) | 2024.01.07 |
---|---|
[파이썬] 8. 함수 (1) | 2024.01.06 |
[파이썬] 7. 파일 입출력 (1) | 2024.01.06 |
[파이썬] 6. 조건문과 반복문 (0) | 2024.01.06 |
[파이썬] 5. 딕셔너리 (0) | 2024.01.06 |