파이썬(Python)

파이썬(python) 클래스 class

알통몬_ 2018. 1. 16. 10:32
반응형


공감 및 댓글은 포스팅 하는데

 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 

도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 

만들어 나가겠습니다^^

 


이번 포스팅에서는 파이썬 클래스에 대해 공부합니다.


클래스는 여러 곳에서 하나의 같은 기능을 사용하고 싶을 때 사용합니다.

예를 들어 계산기를 여러 개 만들고 

사칙 연산 기능을 가지게 만들고 싶을 때

클래스를 사용하지 않으면 각 계산기 마다 

사칙 연산 함수를 선언해주어야 합니다.

하지만 클래스를 사용한다면 하나의 클래스에만 함수를 선언하고,

각 계산기에서 사칙연산 함수를 호출할 수 있습니다.


클래스의 구조

1
2
class Calculator:
        pass
cs

클래스를 가장 간단한게 구성하면 위처럼 구성할 수 있습니다.

class 키워드 + 스페이스 한번 + 클래스이름

클래스이름은 대문자로 시작합니다.

그리고 이 클래스를 기반으로 만드는 것이 객체 입니다.

객체란 클래스의 인스턴스라고도 표현합니다.


계산기 클래스 선언 및 객체생성 및 함수 사용

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
class Calculator:
        #생성자 아무 입력변수가 없을 때는 self만 넣어주면 됨
        def __init__(self):
            self.result = 0
 
        #함수 선언 시에는 꼭 첫 번째 입력 변수로 self를 넣어줘야 합니다.
        def add(self,first, second):
            self.result = first + second
            return self.result
 
        def sub(self,first, second):
            self.result = first - second
            return self.result
 
        def mul(self,first, second):
            self.result = first * second
            return self.result
 
        def div(self,first, second):
            self.result = first / second
            return self.result
 
calulator = Calculator()
first = 10
second = 5
= calulator.add(first, second)
= calulator.sub(first, second)
= calulator.mul(first, second)
= calulator.div(first, second)
print("입력값 :", first, ",", second)
print("더하기", a)
print("뺴기", s)
print("곱하기", m)
print("나누기", d)
 
cs


클래스는 상속과 메소드 오버라이딩

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
class Calculator:
        #생성자 아무 입력변수가 없을 때는 self만 넣어주면 됨
        def __init__(self):
            self.result = 0
 
        #함수 선언 시에는 꼭 첫 번째 입력 변수로 self를 넣어줘야 합니다.
        def add(self,first, second):
            self.result = first + second
            return self.result
 
        def sub(self,first, second):
            self.result = first - second
            return self.result
 
        def mul(self,first, second):
            self.result = first * second
            return self.result
 
        def div(self,first, second):
            self.result = first / second
            return self.result
 
class ChildCalculator(Calculator):
 
    def __init__(self):
        self.result = 0
 
    def mul(self, first, second):
        self.result = (first ** 2+ (second ** 2)
        return self.result
 
cc = ChildCalculator()
first = 10
second = 5
= cc.add(first, second)
= cc.mul(first, second)
 
print("입력값 :", first, ",", second)
print("더하기", a)
print("곱하기", m)
 
cs

ChildCalculator 라는 클래스를 만들고 

위에 선언한 Calculator 클래스를 상속 받았습니다.

그리고 Calulator 클래스에 있는 mul 함수를 

오버라이딩해서 입력한 값 2개를 곱하는 대신

각 제곱을 해서 더하는 함수로 바꿔보았습니다.

그리고 부모 클래스를 상속받은 자식 클래스는 

부모 클래스에 존재하는 함수를

사용할 수도 있습니다.

ex) cc.add(first, second)

ChildCalculator 클래스에는 add() 함수가 없지만, 

Calculator 클래스에 존재하는 add()함수를 사용할 수 있음.


다음 포스팅에서는 모듈과 패키지에 대해서 공부합니다.

감사합니다.



반응형