반응형
내장 함수와 메서드 비교
파이썬에서 내장 함수(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() |
접근 방식 | 데이터 타입에 구애받지 않음 | 특정 데이터 타입(예: 문자열, 리스트)에 특화 |
결론
- 내장 함수는 어떤 객체와도 독립적으로 작동하며, 특정 작업을 수행하기 위한 범용 함수입니다.
- 메서드는 특정 객체에 속하여, 그 객체의 상태를 조작하거나 객체와 관련된 작업을 수행합니다.
두 개념 모두 프로그래밍에서 매우 중요하며, 각각의 용도와 사용처에 맞게 적절히 활용하는 것이 좋습니다.
'실버를 위한 코딩 > 파이썬' 카테고리의 다른 글
내장 함수 'all()' (1) | 2024.09.23 |
---|---|
[파이썬 함수] 내장 함수 abs(x) (0) | 2024.09.22 |
[파이썬] 파이썬의 내장 함수들 (3) | 2024.09.15 |
[파이썬] 파이썬에서 내장 함수와 외장 함수 (3) | 2024.09.14 |
[파이썬] 파이썬에서 많이 사용하는 함수 5개 (4) | 2024.09.13 |