함수와 메서드의 기능만 두고 본다면 언뜻 비슷해 보이지만, 이 둘은 서로 다른 이름으로 불리고 있다.
사실 함수와 메서드의 차이를 알고 있다고해서 코드를 작성하는 실력이 향상되지는 않는다고 생각한다.
하지만, 모르면 곤란한 상황이 생길 수도 있고, 여러 매커니즘을 이해하는데 에러 상황이 발생할 것이다.
가장 큰 차이점은 함수와 메서드는 서로 호출 방식이 다르다.
함수는 특정 작업을 수행하는 코드블록이다. 그것이 전역이던, 지역이던 독립된 기능을 수행하는 단위라 할 수 있다.
예시로 간단하게 "더하기 연산" 기능을 수행하는 plus_num 함수를 정의해보자.
def plus_num(num1,num2):
sum_num=num1+num2
return sum_num
result=plus_num(2,3)
print(result)
#5
이렇듯 함수는 어떤 기능을 수행할 수 있는 코드 블록을 정의하고, 이에 걸맞는 이름을 부여한다.
그리고 이 이름으로 함수를 호출하여 해당 기능을 수행한다.
함수를 먼저 언급한 이유는 함수가 메소드를 포함하고 있기 때문이다.
쉬운 표현으로는, 함수가 객체 안에 포함되어 있는 경우 메서드라고 부른다.
즉, 객체 내부에 함수가 정의되어져 있는 것이다.
def someFunction:
#some code
class someClass:
def someMethod:
#some code
그렇기 때문에 함수는 호출할 때 함수의 이름만 씀으로써 사용할 수 있지만, 메서드는 호출할 때 포함되어있는 객체의 이름을 앞에 표시해주어야 한다.
data_=(1,2,3,4,5)
test1=list(data_) #list 함수로 tuple을 list로 변경
test1.append(6) #list 객체에 속한 함수인 append 메서드로 list에 값을 추가
이제는 한 눈에 보기에 함수와 메서드를 쉽게 구분할 수 있게 되었을 것이다!