공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!! 포스팅 내용이 찾아주신 분들께 도움이 되길 바라며 더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^
|
이번 포스팅에서는 파이썬 클래스에 대해 공부합니다.
클래스는 여러 곳에서 하나의 같은 기능을 사용하고 싶을 때 사용합니다.
예를 들어 계산기를 여러 개 만들고
사칙 연산 기능을 가지게 만들고 싶을 때
클래스를 사용하지 않으면 각 계산기 마다
사칙 연산 함수를 선언해주어야 합니다.
하지만 클래스를 사용한다면 하나의 클래스에만 함수를 선언하고,
각 계산기에서 사칙연산 함수를 호출할 수 있습니다.
클래스의 구조
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 a = calulator.add(first, second) s = calulator.sub(first, second) m = calulator.mul(first, second) d = 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 a = cc.add(first, second) m = 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()함수를 사용할 수 있음.
다음 포스팅에서는 모듈과 패키지에 대해서 공부합니다.
감사합니다.
'파이썬(Python)' 카테고리의 다른 글
파이썬(python) pip install tensorflow 설치 중 PermissionError [WinError 5] 해결 방법 (0) | 2018.01.16 |
---|---|
파이썬(python) 모듈과 패키지 (0) | 2018.01.16 |
파이썬(python) input() 과 print() (0) | 2018.01.15 |
파이썬(python) 파이썬 함수 def (0) | 2018.01.15 |
파이썬(python) if문, while문, for문 (0) | 2018.01.14 |