오늘은 클래스에 대해 알아보도록 하겠습니다. 클래스는 프로그래밍할 때 꼭 필요한 요소는 아닙니다. c언어 같은 경우는 class가 없습니다. 그러면 class가 없어도 된다는 뜻이겠죠? 그런데도 사용하는 이유가 무엇일까요?
아래의 예제를 한번 볼까요?
result = 0
result1 = 0
def sum1(x):
global result
result+=x
return result
def sum2(x):
global result1
result1+=x
return result1
print(sum1(10))
print(sum1(5))
print(sum2(20))
print(sum2(3))
출력
10
15
20
23
이 예제는 result변수를 여러 개 만들었기 때문에 여러 값이 저장될 수 있었습니다. 하지만 만약 result(결괏값)이 5000만 개가 필요하다면 result 변수가 5000만 개가 필요하겠죠? 그러면 코드가 가독성이 없고 개발이 지루 해질 겁니다.
클래스의 구조
class 클래스명:
def 함수명(매개변수):
코드
def 함수명1(매개변수):
코드
#클래스 사용 및 출력 방법
class1 = 클래스명()
print(class1.함수명(매개변수))
객체와 클래스
클래스와 객체를 비유 하자면 클래스는 쿠키를 만드는 틀에 비유할 수 있고, 객체는 틀을 사용해 만든 쿠키라고 할 수 있
습니다. 객체는 자신의 고유한 값을 가지게 됩니다. 예를 들어 쿠키 틀을 이용하여 쿠키를 2개를 만들었을 때 1개의 쿠키에 초코칩을 5개 올렸을 때 나머지 쿠키에 초코칩 5개가 올라가지 않듯이 객체도 자신의 고유한 값을 가지게 됩니다.
클래스 호출 및 매개변수 값 입력하기
class Test:
def input_data(self, x, y):
self.first = x
self.second = y
def add(self):
result = self.first + self.second
return result
a = Test()
a.input_data(10, 5)
print(a.add())
위의 코드는 클래스를 호출하고 매개변수를 입력하여 값을 출력하는 코드입니다. input_data함수에 매개변수로 있는 self라는 예약어가 있습니다. 이 예약어는 객체를 호출할 때 자기 자신이 전달되기 때문에 필요합니다. 그리고 여기서 들어온 매개변수를 클래스 안의 매서드(함수)에서 사용하고 싶을 땐 그 함수의 매개변수에 self를 입력한 뒤 self. 변수명을 사용하면 됩니다.
생성자
위의 클래스 호출 방식을 사용하면 나중에 클래스가 많아지게 되면 가독성이 없어집니다. 그래서 우리는 생성자라는 것을 사용하게 됩니다. 사용 방식은 아래와 같습니다.
class Test:
def __init__(self, x, y):
self.first = x
self.second = y
def add(self):
result = self.first + self.second
return result
a = Test(10, 5)
print(a.add())
위의 코드는 input_data 메서드(함수)를 __init__이라는 예약어를 사용하게 됩니다. 그러면 a라는 변수에 Test클래스를 대입할 때 매개변수의 값도 함께 넣어준 뒤 메서드를 실행해주면 됩니다.
상속
상속은 클래스에서 사용되는 기능입니다. 이 기능은 1번 클래스에서 2번 클래스의 기능을 가져야 할때 사용합니다.
아래는 상속의 예제 입니다.
class Test:
def __init__(self, x, y):
self.first = x
self.second = y
def add(self):
result = self.first + self.second
return result
class Test1(Test):
def add1(self):
result1 = self.first + self.second + 10
return result1
a = Test1(10, 5)
print(a.add())
Test클래스에 있는 add를 Test 1 클래스가 상속을 받으니 Test 1 클래스에서 Test클래스에 있는 add함수를 실행할 수 있습니다.
-끝- 유익하셨다면 공감 버튼을 눌러주세요!
'Learning > Python' 카테고리의 다른 글
파이썬 강좌_#16_리스트 내포 (0) | 2024.11.10 |
---|---|
파이썬 강좌_#15_람다함수 (8) | 2024.11.07 |
파이썬 강좌_#13_함수 (14) | 2020.05.26 |
파이썬 강좌_#12_while문 (2) | 2020.05.26 |
파이썬 강좌_#11_for문 (18) | 2020.05.13 |
댓글