본문 바로가기
실버를 위한 코딩/파이썬

내장 함수와 메서드 비교

by forSilver 2024. 9. 21.
반응형

내장 함수와 메서드 비교

파이썬에서 내장 함수(built-in function)와 메서드(method)는 모두 함수이지만, 사용하는 방식과 속성에 몇 가지 중요한 차이가 있습니다. 두 개념을 비교해 보겠습니다.

1. 내장 함수 (Built-in Function)

내장 함수는 파이썬에 기본적으로 제공되는 함수로, 어떤 객체나 클래스와 상관없이 독립적으로 사용할 수 있습니다. 내장 함수는 전역 네임스페이스에 존재하기 때문에, 어디에서나 호출하여 사용할 수 있습니다.

특징:

  • 독립성: 특정 객체나 데이터 타입에 묶여 있지 않으며, 함수 그 자체로 작동합니다.
  • 전역 사용 가능: 전역 네임스페이스에서 바로 호출할 수 있습니다.
  • 범용적: 다양한 데이터 타입에서 사용할 수 있습니다.

예시:

# abs()는 내장 함수로, 독립적으로 사용됨
print(abs(-5))  # 출력: 5

# len()도 내장 함수로, 리스트, 문자열 등 다양한 데이터 타입에서 사용됨
print(len([1, 2, 3]))  # 출력: 3

파이썬의 내장 함수 예:

  • abs(): 절대값 반환
  • len(): 객체의 길이 반환
  • max(): 가장 큰 값 반환
  • print(): 출력

2. 메서드 (Method)

메서드는 특정 객체에 종속된 함수입니다. 메서드는 객체의 속성에 접근하고 그 상태를 변경하거나 관련된 작업을 수행하는 데 사용됩니다. 메서드는 객체에 의존하므로, 항상 객체와 함께 호출됩니다.

특징:

  • 객체에 의존: 메서드는 항상 특정 객체(인스턴스)에 묶여 있으며, 해당 객체와 함께 호출해야 합니다.
  • 객체의 속성에 접근 가능: 메서드는 객체 내부의 데이터나 속성에 접근할 수 있으며, 이를 조작할 수 있습니다.
  • 특정 타입에 특화: 메서드는 보통 특정 데이터 타입이나 클래스와 연관되어 있으며, 그 타입에 특화된 기능을 제공합니다.

예시:

# 문자열 객체에 대한 메서드인 .upper()
my_string = "hello"
print(my_string.upper())  # 출력: "HELLO"

# 리스트 객체에 대한 메서드인 .append()
my_list = [1, 2, 3]
my_list.append(4)
print(my_list)  # 출력: [1, 2, 3, 4]

파이썬의 메서드 예:

  • 문자열 메서드: .upper(), .lower(), .replace()
  • 리스트 메서드: .append(), .remove(), .sort()
  • 딕셔너리 메서드: .keys(), .values(), .get()

주요 차이점 요약

특징 내장 함수 (Built-in Function) 메서드 (Method)
호출 방법 독립적으로 호출됨 객체에 종속되어 객체와 함께 호출됨
연관성 객체와 무관하게 동작 특정 객체 또는 데이터 타입과 연관됨
예시 abs(), len(), print() .upper(), .append(), .get()
접근 방식 데이터 타입에 구애받지 않음 특정 데이터 타입(예: 문자열, 리스트)에 특화

결론

  • 내장 함수는 어떤 객체와도 독립적으로 작동하며, 특정 작업을 수행하기 위한 범용 함수입니다.
  • 메서드는 특정 객체에 속하여, 그 객체의 상태를 조작하거나 객체와 관련된 작업을 수행합니다.

두 개념 모두 프로그래밍에서 매우 중요하며, 각각의 용도와 사용처에 맞게 적절히 활용하는 것이 좋습니다.