본문 바로가기
방구석코딩/파이썬 기초문법

[파이썬 독학] 클래스(class)에서 메서드(method)와 사용법

by 석세상 2022. 7. 24.
반응형

이전에 우리는 클래스 구성과 사용 예시와 함께 멤버 변수가 무엇인지 알아보았고, 또 클래스 내부에서 사용하는 방법과 외부에서 사용하는 방법에 대해서 알아보았습니다. 오늘은 메서드라는 부분을 알아볼 텐데요. 이전 내용을 기억하신다면 그렇게 어렵지 않게 이해할 수 있을 거라 생각됩니다.

[파이썬 독학] 클래스(class) 멤버 변수 : 클래스 내부 / 외부 사용법 (tistory.com)

 

 

메서드란 무엇인가?

참 여러 가지 용어가 많이 나오는 클래스인데요. 메서드라는 용어가 있습니다. 클래스는 여러 함수의 집합이라고 했는데요. 쉽게 이해하자면 클래스 내에서 정의한 __init__ 함수 부분을 제외한 나머지 정의한 함수들의 사용을 메서드라고 이해하면 될 것 같습니다. 조금 더 풀어서 얘기해보자면 클래스 내에서 메인 함수는 __init__으로서 이 부분에서 객체를 생성하고, 그 외의 함수들은 메서드라고 이해해도 크게 벗어나지는 않아 보입니다.

 

 

메서드 사용법 및 예시

지금까지 예제에서는 __init__ 부분만 있는 걸 가지고 했었는데요. 혹시 지난번 멤버 변수를 공부할 때 외부 변수 추가했던 부분이 기억나시나요? 클래스를 이용해 객체를 생성한 후 생성한 객체에서 변수를 추가하는 방법이었는데요. 만약 이렇게 추가하는 변수가 많은 객체에 사용되어야 하는 경우에는 클래스 안에서 함수로 정의하여 사용할 수 있습니다. 아래 간단한 예시를 통해 알아보도록 하죠.

 

아래 클래스 생성을 보시면 정의된 함수가 __init__ 뿐 아니라 syrup이라는 함수도 있는 걸 알 수 있습니다. __init__ 이 메인 함수라면 syrup이라는 부가 함수가 있는 걸 볼 수 있는데요. 이 부분을 사용하는 것이 메서드라고 부른다고 보시면 됩니다.

 

그럼 def syrup 괄호 안에 self와 yn이라는 변수를 볼 수 있는데요. self는 __init__에 정의한 변수를 사용하기 위해서 포함하고요. syrup에서 추가된 변수는 yn이 있겠네요.

클래스 추가 함수 정의

 

 

위의 클래스를 실행시키고 이를 사용하기 위해 아래와 같이 실행해 줍니다. straw1은 객체이고 딸기주스 한잔이라고 생각하면 됩니다. 그럼 클래스를 실행했을 때 '딸기 수: 5개, 딸기주스가 완성되었습니다'라는 결과가 생성되었죠?

 

그리고 여기에 추가 변수로 시럽 추가 여부에 대해 위에서 정의한 syrup 함수가 있을 거예요. 이 함수의 내용을 추가해서 사용하려면 객체명.함수명(변숫값)을 넣어주어야 합니다. 아래를 보시면 straw1이라는 객체에 syrup이라는 함수를 사용하겠다. 그리고 self는 __init__에 정의된 변수를 자동으로 가져오기 때문에 제외하고  syrup에서 추가된 yn 변수에 대한 값을 입력하면 되는 것이죠. 그럼 아래와 같은 결과가 생성되는 것을 볼 수 있습니다.

메소드 실행 결과

 

 

지난번에 했던 외부 변수로 시럽 추가 여부를 넣었던 기억나시나요? 만약 시럽 추가 여부에 대해서 자주 사용해야 한다면 위와 같이 추가 함수를 생성하는 것이 훨씬 유리합니다. 이유는 아랫부분에 지난번에 했던걸 비교하면서 이야기해드릴게요.

 

아래 보시면 시럽 추가 여부를 위해 첫 줄에 변수명과 변숫값을 생성합니다. 그다음 출력을 위해서 print문을 써주게 되는 것이죠. 한 번만 실행한다면 아래와 같이 사용해도 무방하지만 만약 straw1, straw2,... straw100까지 딸기 주스 100잔에 대해 시럽 추가 여부를 만들어야 한다면 아래와 같이 변수명 입력하고 print~문을 100번 써주어야겠죠. 

 

그렇기 때문에 자주 사용하는 경우는 클래스 내 함수로 생성하는 것이 유리하다는 것이죠. 클래스에서 사용되는 메서드에 대해 조금 도움이 되셨나요? 만약 잘못된 부분이 있으면 댓글로 알려주시면 감사하겠습니다.

 

728x90
반응형

댓글