1. 클래스(Class) 기본
1.1 Class란?
- 변수와 함수를 묶어놓은 개념
- 사용 방법
- 변수와 함수가 들어있는 클래스를 선언
- 클래스를 객체로 만들어서 클래스 안에 선언된 변수와 함수를 사용
1.2 기본 클래스의 선언과 사용
1
2
3
4
5
6
7
8
9
10
11
# 클래스 선언
class Calculator:
num1 = 1
num2 = 2
# 클래스에서 사용하는 모든 함수의 파라미터는 처음에 self를 사용함
def plus(self):
return self.num1 + self.num2
def minus(self):
return self.num1 - self.num2
- 클래스 선언
- 클래스에서 사용하는 모든 함수의 파라미터는 처음에 self를 붙여서 사용함
- self : 객체 자신을 뜻함
1
2
3
# 클래스의 사용 (객체로 만들기)
calc = Calculator()
calc.num1, calc.num2, calc.plus(), calc.minus()
1
(1, 2, 3, -1)
- 클래스 사용
- 클래스를 객체로 만들어서 사용함
1
2
3
calc2 = Calculator()
calc2.num1 = 10
calc2.plus()
1
12
- calc2 객체의 num1 함수를 num = 1에서 num1 = 10으로 변수를 변경함
2. 객체 지향
- 객체 지향 = 객체 = object
- 실제 세계를 코드에 반영해서 개발하는 방법
- 여러명의 개발자가 코드를 효율적으로 작성해서 프로젝트를 완성시키기 위한 방법
- 실제 세계는 설계도 작성(class) -> 실제물건 (object, 객체)
- 사용자 정의 데이터 타입 -> 내가 직접 만듬 calculator vs print
1
[data for data in dir(calc) if data[:2] != "__"]
1
['minus', 'num1', 'num2', 'plus']
- calc 클래스가 사용 가능한 메서드 확인
3. 생성자
3.1 생성자란?
- 클래스가 객체로 생성될때 실행되는 함수
- 변수(재료)를 추가할때 사용
__init__
으로 선언함
3.2 생성자 실습
1
2
3
4
5
6
7
8
9
10
11
12
13
class Calculator:
def __init__(self, num1, num2):
self.num1 = num1
self.num2 = num2
def plus(self):
return self.num1 + self.num2
def minus(self):
return self.num1 - self.num2
calc1 = Calculator(1, 2)
calc1.plus(), calc1.minus()
1
(3, -1)
- num1 = 1, num2 = 2를 사용하여 객체를 만들면 self.num1, self.num2는 1, 2로 들어감
- 생성자 만드는 함수 객체를 만들때 num1, num2를 무조건 생성 해야함
- 함수이기에 default parameter 사용가능 ex num2 = 10
*args
,**kwargs
를 사용하여 생성 가능