일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 러닝
- 중식
- 정보처리기사
- 대구
- docker
- 한강
- Run The Bridge
- 오답노트
- 뚝섬유원지
- 소모임
- Python
- zabbix
- GitHub
- 자전거
- 대전
- 성수대교
- 힐링
- Podman
- 유산소
- 하체
- DSEC
- Grafana
- 2021
- 10km
- 달리기
- Linux
- Kubernetes
- 건대입구역
- 맛집
- Shell
- Today
- Total
Run The Bridge
(Python) Class 공부 본문
학교생활을 하면서 Python을 사용하는 경우가 많은데 함수까지는 어느정도 이해가 되었다.
하지만 Class를 사용하기에는 아직 실력이 많이 부족하여, 종강도 했고 시간이 매우 많이 남으므로 Class공부를 시작했다. https://youtu.be/uIcK7-YU8uA에서 도움을 많이 받았다.
우선 제일 기초적인 계산기를 Class와 함수를 이용해서 만든다.
"""
클래스 이름: Four rules calculation
더하기: add
빼기: sub
곱하기: mul
나누기: div
"""
class Four_rules_calculation:
def __init__(self, *args):
self.a, self.b = map(int, input("숫자 두개를 입력해주세요: ").split())
def add(self):
return self.a + self.b
def sub(self):
return self.a - self.b
def mul(self):
return self.a * self.b
def div(self):
return self.a // self.b
# 나누기에 0값이 들어왔을 때 오류처리
class division_error_process(Four_rules_calculation):
def div(self):
if self.b == 0:
print("분모에 0 이 올 수 없습니다.")
else:
return self.a // self.b
그 후 간단하게 코딩을 해보았다. 매우 기초적인 코딩이라 복사, 붙여넣기가 대부분이다.
하지만 ‘백문의 불여일타’라고 직접 Class와 def를 사용해봄으로써 공부하기엔 충분하다.
처음 점프 투 파이썬으로 독학을 했을 땐 Class라는 것이 어려운것이라 생각했는데, 이상하게 Python을 자주접하고 많이쓰다보니 전에는 이해가 되지않던게 쉽게 이해가 된다.
1. Class를 쓸 때는 우선 Class명을 먼저 지정해준다.
Ex) Class test:
호출: test_class = test() à test가 Class안으로 들어간다고 이해했다.
2. 그 후 Class를 선언할 때 제일먼저 시작되는 __init__함수를 정의해준다.
Ex) def __init__(self) à 여기서 들어가는 self는 객체라고 보면될 것 같다.
호출: test_class = test()를 하면 init부분이 바로 시작된다.
3. 이제 __init__함수를 처리할 부가함수들을 정의해준다.
Ex) def add(self):
호출: test.add() à 위에서 Class안으로 진입했으니 이제 test(객체)를 통해 함수(add)를 호출한다.
4. 상속하는 방법은 새로운 Class를 정의하고 부모 Class 이름을 써준다.
Ex) Class test2(test):
호출: test2_class = test2()
5. 그 후 add부분을 고치고싶으면 조건문이나 재정의를 해주면된다.
def add(self):
if self.a > 0:
print(“a는 0보다 큽니다”)
else:
print(“a는 0보다 작습니다”)
6. 그 밖에 부모 Class를 함수 전부를 상속받는 Super()가 존재한다.
def __init__(self):
super().__init__() à 다음과 같은 형태로 적으면 부모 __init__의 전부를 상속받는다.
무언가 추가, 조건이 필요할 때 사용하면 좋다.
말들이 되게 어려운데, youtube를 보면서 공부하면 많은 도움을 받을 수 있을거라 생각된다.
★그리고 Class를 사용하면 변수명앞에 self를 붙여줘야한다!!!!! self는 내가 지정한 객체 이름이 들어간다!!★
class JSS:
def __init__(self):
self.name = input("이름: ")
self.age = input("나이: ")
def show(self):
print(f"나의 이름은 {self.name}, 나이는 {self.age}세 입니다.")
class JSS2(JSS):
def __init__(self):
super().__init__()
self.gender = input("성별: ")
def show(self):
print(f"나의 이름은 {self.name}, 나이는 {self.age}세 입니다\
그리고 성별은 {self.gender} 입니다.")
a = JSS()
--> 홍길동
--> 24
a.show()
--> 나의 이름은 홍길동, 나이는 24세 입니다.
↓JSS를 JSS2에게 상속시킨 후 코드↓
b = JSS2(JSS)
--> 홍길동
--> 24
--> 남
b.show()
--> 나의 이름은 홍길동, 나이는 24세입니다 그리고 성별은 남 입니다.
감사합니다. Thank you!
'Python > How to Use Python' 카테고리의 다른 글
(Python) Enter을 2번 입력받기 전 까지 계속 input 하는 방법 (0) | 2021.07.16 |
---|---|
(python error) module과 동일한 명의 .py를 썼을 때 (0) | 2021.06.23 |
(Python) 재귀함수(Recursive function)란? (2) | 2021.05.17 |
(API+Python) VirusTotal API 이용해서 URL 검색하기 (0) | 2021.04.03 |
(Python) Class 공부. 2 (0) | 2021.01.25 |