파이썬/파이썬(python) 중급

[16-2 파이썬] 객체를 구성하는 속성, 메서드(attribute, method)

Olivia-BlackCherry 2022. 8. 23. 15:17

지난 시간 객체지향 프로그래밍과 절차지향 프로그래밍에 대해서 공부했다.

https://olivia-blackcherry.tistory.com/100

 

[16-1 파이썬] 객체지향 프로그래밍(OOP) vs 객체지향 프로그래밍

파이썬은 객체지향 프로그래밍이다. 1. 절차지향 프로그래밍 객체지향 프로그래밍을 본격적으로 알기에 앞서, 객체지향과 반대되는 개념인, 절차지향 프로그래밍을 알아보겠다. 절차지향프로

olivia-blackcherry.tistory.com

 

오늘은 객체를 구성하는 속성과 메서드에 대해 알아볼 것이다. 

 

더본 백종원 사장을 모델로 예를 들어보자.

음식점 가게를 차린 백종원 사장은 ,

처음에는 혼자서 주문도 받고, 요리도 하고, 서빙도 하고, 청소도 했다.

손님이 별로 없을 때는 괜찮았다.

 

그런데 맛집으로 소문나면서부터...

사람들이 엄청나게 몰려온다.

 

모든 절차를 혼자서 처리하다보니

스스로도 너무 바쁘다. 과정도 헷갈리고, 정신이 없다.

그래서 종업원을 고용한다. 

이들이 바로 객체 object이다.

안내원: 안내하고, 주문을 받는 사람
요리사: 요리를 하는 사람
미화원: 청소를 하는 사람

 

 

이런 객체는 아래의 2가지 요소를 갖는다.

가진 것
하는 것

 

객체 중, 요리사를 예로 들어

객체의 2가지 요소에 대해 제대로 알아보자!

 

1. 가진 것  = attribute 속성

요리사가 가진 것은 요리실력과 분야이다.

요리 실력은 1등급이고,

분야는 한식이다.

 

이를 코드로 작성해보면 아래와 같다.

요리 실력 = 1
분야 = "한식"

 

다시 말해 가진 것은 변수들이다.

여기서 요리사가 가진 변수는

요리 실력과 분야라고 할 수 있다.

 

파이썬에서는

이 변수들을 attribute 속성이라고 부른다.

변수이긴 하지만,

특정 객체에 속한 변수를 의미하기 때문에

변수가 아니라, 속성이라고 불러

일반적인 변수와 구분한다.

 

생각해보면 다른 객체인

미화원이나 안내원이 이런 변수를 갖지는 않는다.

 

 

 

2. 하는 것? = method 메서드

다음으로 하는 일을 알아보자.

요리사가 하는 것은,

불 다루는 일

칼로 써는 일이다.

 

이를 코드로 작성해보면 아래와 같다.

def fire(ingredient, fire):
    # 불 다루기
def cut(ingredient, knife):
    # 칼로 썰기

하는 일은 def를 쓰고 정의하기 때문에

함수라고 말할 수 있다.

 

하지만 파이썬에서는

객체에서 하는 일을

함수라고 부르지 않고,

method 메서드라고 부른다.

 

함수이기는 하지만,

특정 객체만 할 수 있는 일로 한정되기 때문이다.

 

다른 객체인 미화원이나 안내원이 불을 다루거나 칼을 쓰지 않듯이 말이다.

 

 

종합해보면,

 

객체는
같은 것 내에서
어떤 데이터(attribute)와
어떤 기능(method)을
완전히 결합하는 방식이다.

 

 

다음 시간에는 

클래스에 대해 알아보도록 하겠다.