일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- jenkins
- it기사
- Azure
- 표준 라이브러리
- awskrug
- GIT
- AI
- aws사용자모임
- go
- 파이썬
- python
- 클라우드
- 변수
- maven
- 프로세스 관리
- 함수
- terraform
- 3티어 아키텍처
- AI챗봇
- nexus
- AWS
- docker
- 리눅스
- Linux
- 명령어
- dockerfile
- open ai
- 애저
- 사용자 계정 관리
- git hub
- Today
- Total
We are Architect
17. 점프 투 파이썬 (클래스) 본문
* 클래스
- 어떠한 객체의 틀이 바로 클래스이다.
- 클래스와 객체의 차이는 마치 쿠키틀과 쿠키 그 자체의 차이이다.
- 즉 클래스는 어떤 객체를 찍어내는 틀과 같은 역할을 하고 그 결과로 나오는 것이 그 자체인 객체이다.
- 클래스는 무수히 많은 객체를 찍어낼 수 있다.
// 클래스
class Cookie:
pass
// 객체
a = Cookie()
b = Cookie()
* 계산기 클래스 만드는 법
- 객체가 어떤 역할을 할 것이고 어떻게 동작할지 구상한 후 만들어 나가야 한다.
- 우선 +, -, /, * 의 기능을 클래스 안에 넣어야 한다는 것을 생각해야 한다.
- 코드로 작성해야 할 것은 클래스 구조를 먼저 넣어야 한다.
class FourCal:
pass
- 다음은 객체에 연산할 숫자를 지정해야 한다. 어떤 값을 가져오고 지정할 건지 setdata 함수를 만들어준다.
- 그리고 함수는 다른 말로 매써드라고 부르기도 한다.
- 여기서 self 변수를 사용하는 이유는 호출한 객체가 self로 들어가고 그다음에 입력된 값들이 first와 second 값에 들어가게 되는 것이다.
class FourCal:
def setdata(self, first, second):
self.first = first
self.second = second
- 이제 객체를 만들어서 클래스와 매서드가 잘 작동하는지 확인해 준다.
class FourCal:
def setdata(self, first, second):
self.first = first
self.second = second
a = FourCal()
b = FourCal()
- 각각의 연산자 기능을 추가해 준다.
class FourCal:
def setdata(self, first, second):
self.first = first
self.second = second
def add(self):
result self.first + self.second
return result
def mul(self):
result self.first * self.second
return result
def sub(self):
result self.first - self.second
return result
def div(self):
result = self.first / self.second
return result
a = FourCal()
b = FourCal()
a.setdata(4,2)
b.setdata(3,8)
- 코드를 작성 중에 VS code에서 이러한 탭과 공백을 번갈아서 사용할 때 대한 오류가 발생하였다.
- 해당 코드는 공백과 탭을 섞어서 사용하여 생기는 오류이다.
- 그러므로 탭을 사용하여 코드를 작성하도록 하자.
- 그다음 생성자를 생성한다.
- 생성자는 객체가 생성될 때 자동으로 호출되는 메서드이다.
- __init__을 사용하면 해당 매서드는 생성자가 된다.
class FourCal:
# 생성자 __init__을 사용
def __init__(self, first, second):
self.first = first
self.second = second
def add(self):
result = self.first + self.second
return result
def mul(self):
result = self.first * self.second
return result
def sub(self):
result = self.first - self.second
return result
def div(self):
result = self.first / self.second
return result
# setdata에 있는 매개변수를 해당 함수에 넣음.
a = FourCal(4,2)
b = FourCal(3,8)
# 이제는 setdata 대신 FoulCal에 매개변수를 집어넣어야한다.
# a.setdata(4,2)
# b.setdata(3,8)
# 연산이 잘되는지 확인
a.add()
a.div()
print(a.add())
print(b.add())
* 클래스의 상속
- 어떤 클래스를 만들 때 다른 클래스의 기능을 물려받을 수 있게 만드는 것.
class FourCal:
def __init__(self, first, second):
self.first = first
self.second = second
def add(self):
result = self.first + self.second
return result
def mul(self):
result = self.first * self.second
return result
def sub(self):
result = self.first - self.second
return result
def div(self):
result = self.first / self.second
return result
# 기존 클래스를 상속받는 클래스
class MoreFourCal(FourCal):
def pow(self):
result = self.first ** self.second
return result
# 객체 만들때 적용
a = MoreFourCal(4,2)
b = FourCal(3,8)
print(a.add())
print(b.add())
# 결과값 확인
print(a.pow())
* 매서드 오버라이딩
- 부모클래스에서 상속받은 메서드를 오버라이딩, 즉 다시 덮어서 씌어서 메서드를 적용시키는 것이 메서드 오버라이딩이다.
* 클래스 변수
- 객체변수는 다른 객체들의 영향을 받지 않지만 클래스변수는 매서드 안에 변수를 선언하는 것이다.
- 사용하려면 클래스이름.클래스변수 로 사용이 가능하다.
- 변수 값을 바꾸면 객체에 값도 바뀐다. 즉 모든 객체에 공유가 된다.
class me:
lastname = "이"
>>> me.lastname
'Programing > Python' 카테고리의 다른 글
19. 점프 투 파이썬 (패키지) (0) | 2024.11.14 |
---|---|
18. 점프 투 파이썬 (모듈) (0) | 2024.11.14 |
16. 점프 투 파이썬 (프로그램 입출력) (0) | 2024.11.12 |
15. 점프 투 파이썬 (파일 읽기, 쓰기) (0) | 2024.11.11 |
14. 점프 투 파이썬 (사용자 입출력) (0) | 2024.11.11 |