목차
객체(object)란 세상에 존재하는 사물이나 생명을 의미합니다.
이렇게 말하면 이해하기 어려울 수 있으니 예를 하나 들어 보겠습니다.
하나의 자동차가 존재한다고 가정해 봅시다. 만약 자동차에 바퀴가 없다면 자동차가 이동을 할 수 있을까요? 또 만약 자동차에 핸들이 없다면 자동차를 운전할 수 있을까요? 자동차에 중요한 기능 중에 하나라도 없다면 자동차는 움직일 수 없습니다. 즉 객체(object)는 완전체입니다. 자동차가 모든 기능을 할 수 있을 때 비로소 자동차는 객체(object)가 됩니다.
객체(object)를 구현하기 위해서는 그전에 클래스(class)가 필요합니다
클래스(class)란 하나의 설계도입니다. 우리는 설계도를 통해서 하나의
데이터(객체)를 구현할 수 있습니다.
클래스에는 변수와 메서드가 존재합니다.
변수 -> 속성
메서드 -> 기능
변수는 하나의 속성을 의미하고 그 속성을 통해 메서드 즉 기능을 수행합니다.
class 클래스 명:
변수 -> 속성
메서드 -> 기능
....
클래스 구성 방법은 먼저 클래스 키워드인 class를 적어주고 그 뒤에 클래스 이름을 정한뒤 콜론(:)을 작성해 주면 됩니다. 그리고 클래스 안에는 변수와 메서드를 작성해 주면 됩니다.
클래스 변수(클래스를 사용할 변수) = 클래스명() -> 객체 생성
클래스 변수.변수 -> 클래스 안에 변수 사용
클래스 변수.메서드 -> 클래스 안에 메서드 사용
클래스를 사용하기 위해서는 객체를 만들어 줘야 합니다.
그런다음 .변수 또는 .메서드를 이용해서 클래스에 있는 변수나 메서드를 사용할 수 있습니다.
예제) 더하기 클래스
class Calcul:
def sum(self, num1, num2):
result = num1 + num2
print("%d + %d = %d" % (num1, num2, result))
c1 = Calcul()
c1.sum(10, 5)
출력 결과:
10 + 5 = 15
매개변수: 매개변수는 함수나 메서드 정의 부분에 정의된 변수입니다.
예)
def sum(self, num1, num2): # 매개 변수: self, num1, num2
....
인자: 인자는 함수나 메서드에 전달할 값입니다.
예)
def sum(self, num1, num2): # 매개 변수: self, num1, num2
a = (3, 4) # 인자: 3, 4
# 3 -> num1
# 4 -> num2
위에 예제에서 보게 되면 매개변수는 3개인데 인자 값은 두 개라는 걸 확인할 수 있습니다. 다른 언어에서 이렇게 사용하게 되면 무조건 오류가 발생합니다. 하지만 파이썬에서 self는 객체 메서드를 호출한 객체가 자동으로 전달되기 때문에 매개변수는 세 개이고 인자는 두 개인 것입니다.
밑에 그림을 보시면 쉽게 이해하실 수 있습니다.
예제) 하나의 클래스에 덧셈, 뺄셈, 곱셈, 나눗셈 연산 출력하기
class Calcul:
def sum(self, num1, num2):
result = num1 + num2
print("%d + %d = %d" % (num1, num2, result))
def sub(self, num1, num2):
result = num1 - num2
print("%d - %d = %d" % (num1, num2, result))
def mul(self, num1, num2):
result = num1 * num2
print("%d * %d = %d" % (num1, num2, result))
def div(self, num1, num2):
result = num1 / num2
print("%d / %d = %d" % (num1, num2, result))
c1 = Calcul()
c1.sum(10, 5)
c1.sub(10, 5)
c1.mul(10, 5)
c1.div(10, 5)
출력 결과:
10 + 5 = 15
10 - 5 = 5
10 * 5 = 50
10 / 5 = 2
이상으로 파이썬 객체와 클래스에 대해 알아봤습니다. 잘못된 부분이나 부족한 부분 있다면 피드백 감사하겠습니다!!!