PYTHON
METHOD란?
파이썬에서 "메서드(method)"란, 클래스에 정의된 함수로, 해당 클래스의 인스턴스(객체)와 관련된 기능을 수행하는 함수를 말한다. 메서드는 객체 지향 프로그래밍(OOP)에서 매우 중요한 개념이며, 객체의 상태를 조작하거나 객체에 대한 특정 작업을 수행하는 데 사용된다.
메서드의 특징
1. 클래스 내부에 정의:
- 메서드는 클래스의 블록 내부에 정의된다. 메서드는 특정 클래스의 인스턴스와 연관된 기능을 수행하는 함수로, 클래스의 일부로 간주된다.
2. 첫 번째 매개변수로 self:
- 파이썬의 메서드는 항상 첫 번째 매개변수로 self를 사용한다. self는 메서드가 호출될 때 해당 메서드가 작동하는 인스턴스 객체를 가리킨다. 이를 통해 메서드 내부에서 클래스 인스턴스의 속성에 접근하거나 다른 메서드를 호출할 수 있다.
class MyClass:
def my_method(self, value):
self.value = value
print(f"Value set to {self.value}")
3. 인스턴스 메서드(Instance Method):
- 일반적으로 메서드는 특정 인스턴스에 대해 호출되며, 인스턴스의 속성에 접근하고 이를 변경할 수 있다.
4. 클래스 메서드(Class Method):
- 클래스 메서드는 클래스 자체에 작용하는 메서드. 클래스 메서드는 첫 번째 매개변수로 cls를 사용하며, 이는 클래스 객체를 가리킨다. 클래스 메서드를 정의하려면 @classmethod 데코레이터를 사용한다.
class MyClass:
class_variable = 0
@classmethod
def increment_class_variable(cls):
cls.class_variable += 1
5. 정적 메서드(Static Method):
- 정적 메서드는 클래스나 인스턴스의 상태와 무관하게 동작하는 메서드. 정적 메서드는 self나 cls 매개변수를 사용하지 않으며, 일반 함수와 유사하다. 정적 메서드를 정의하려면 @staticmethod 데코레이터를 사용한다.
class MyClass:
@staticmethod
def static_method():
print("This is a static method.")
메서드의 종류
-
인스턴스 메서드: 인스턴스의 상태를 조작하거나 반환하는 메서드. 클래스 내에서 가장 흔히 사용하는 메서드 유형
-
클래스 메서드: 클래스 자체를 조작하거나 클래스 레벨에서 동작하는 메서드. @classmethod 데코레이터를 사용
-
정적 메서드: 클래스나 인스턴스와 관련 없는 기능을 수행하는 메서드. @staticmethod 데코레이터를 사용
메서드 종류
1. 내장 메서드
Python에서 기본적으로 제공되는 함수들
- print(): 콘솔에 출력하는 함수
- len(): 객체의 길이(항목 수)를 반환
- type(): 객체의 타입을 반환
- str(): 객체를 문자열로 변환
- int(): 객체를 정수로 변환
- float(): 객체를 부동소수점으로 변환
- input(): 사용자 입력을 받음
- abs(): 절대값을 반환
- sum(): 반복 가능한 객체의 합계를 계산
- min(): 반복 가능한 객체의 최솟값을 반환
- max(): 반복 가능한 객체의 최댓값을 반환
- round(): 숫자를 반올림
- sorted(): 반복 가능한 객체를 정렬
- map(): 함수와 반복 가능한 객체를 받아, 각 요소에 함수를 적용
- filter(): 함수와 반복 가능한 객체를 받아, 조건에 맞는 요소만 반환
- zip(): 여러 반복 가능한 객체의 요소들을 튜플로 묶어줌
2. 리스트 (List) 메서드
리스트는 Python에서 가장 자주 사용되는 데이터 구조 중 하나다.
- append(x): 리스트의 끝에 항목 x를 추가
- extend(iterable): 리스트를 확장하여 반복 가능한 객체의 모든 항목을 추가
- insert(i, x): 지정된 위치 i에 항목 x를 삽입
- remove(x): 리스트에서 첫 번째로 등장하는 항목 x를 제거
- pop([i]): 지정된 위치 i의 항목을 제거하고 반환. 인덱스를 지정하지 않으면 마지막 항목을 제거하고 반환
- clear(): 리스트의 모든 항목을 제거
- index(x, [start, [end]]): 리스트에서 항목 x의 첫 번째 인덱스를 반환
- count(x): 리스트에서 항목 x의 개수를 셈
- sort(key=None, reverse=False): 리스트를 제자리에서 정렬
- reverse(): 리스트의 순서를 제자리에서 뒤집음
- copy(): 리스트의 얕은 복사본을 반환
3. 문자열 (String) 메서드
문자열은 불변(immutable) 객체이므로, 문자열 메서드는 새로운 문자열을 반환.
- capitalize(): 첫 글자를 대문자로 변환
- lower(): 모든 문자를 소문자로 변환
- upper(): 모든 문자를 대문자로 변환
- title(): 각 단어의 첫 글자를 대문자로 변환
- strip([chars]): 문자열의 양쪽 끝에서 특정 문자들을 제거
- lstrip([chars]): 문자열의 왼쪽 끝에서 특정 문자들을 제거
- rstrip([chars]): 문자열의 오른쪽 끝에서 특정 문자들을 제거
- split(sep=None, maxsplit=-1): 구분자를 기준으로 문자열을 나누어 리스트로 반환
- join(iterable): 반복 가능한 객체의 문자열 요소들을 연결하여 하나의 문자열로 반환
- replace(old, new, count=-1): 문자열 내의 old를 new로 바꿈
- find(sub, start=0, end=len(string)): 문자열에서 sub 문자열이 처음 등장하는 위치를 반환. 찾지 못하면 -1 반환
- rfind(sub, start=0, end=len(string)): 문자열의 오른쪽에서부터 sub 문자열을 찾아 그 위치를 반환. 찾지 못하면 -1 반환
- startswith(prefix, start=0, end=len(string)): 문자열이 주어진 prefix로 시작하는지 확인
- endswith(suffix, start=0, end=len(string)): 문자열이 주어진 suffix로 끝나는지 확인
- isdigit(): 문자열이 숫자로만 구성되어 있는지 확인
- isalpha(): 문자열이 문자로만 구성되어 있는지 확인
- isalnum(): 문자열이 문자와 숫자로만 구성되어 있는지 확인
4. 딕셔너리 (Dictionary) 메서드
딕셔너리는 키와 값의 쌍으로 구성된 데이터 구조.
- keys(): 딕셔너리의 모든 키를 반환
- values(): 딕셔너리의 모든 값을 반환
- items(): 딕셔너리의 모든 키-값 쌍을 튜플로 반환
- get(key, default=None): 키가 존재하면 그 값을 반환하고, 그렇지 않으면 기본값을 반환
- pop(key, default=None): 키가 존재하면 해당 키-값 쌍을 제거하고 그 값을 반환. 키가 없으면 기본값을 반환
- popitem(): 마지막으로 삽입된 키-값 쌍을 제거하고 반환
- update([other]): 다른 딕셔너리 또는 반복 가능한 객체의 키-값 쌍으로 딕셔너리를 업데이트
- clear(): 딕셔너리의 모든 항목을 제거
setdefault(key, default=None): 키가 존재하면 그 값을 반환하고, 그렇지 않으면 기본값을 설정하고 그 값을 반환
5. 세트 (Set) 메서드
세트는 중복되지 않는 항목들의 집합
- add(elem): 세트에 항목을 추가
- remove(elem): 세트에서 항목을 제거. 항목이 없으면 KeyError 발생
- discard(elem): 세트에서 항목을 제거. 항목이 없어도 에러가 발생하지 않음
- pop(): 세트에서 무작위로 항목을 제거하고 반환
- clear(): 세트의 모든 항목을 제거
- union(*others): 세트의 합집합을 반환
- intersection(*others): 세트의 교집합을 반환
- difference(*others): 세트의 차집합을 반환
- symmetric_difference(other): 두 세트 간의 대칭 차집합을 반환
- issubset(other): 세트가 다른 세트의 부분집합인지 확인
- issuperset(other): 세트가 다른 세트를 포함하는지 확인
- isdisjoint(other): 두 세트가 서로 겹치지 않는지 확인
6. 파일 (File) 메서드
파일을 다룰 때 사용되는 메서드
- open(filename, mode): 파일을 열고 파일 객체를 반환
- read([size]): 파일에서 데이터를 읽고 반환
- write(string): 파일에 문자열을 쓰고, 쓴 문자의 개수를 반환
- close(): 파일을 닫음
- readline([size]): 파일에서 한 줄을 읽고 반환
- readlines([hint]): 파일의 모든 줄을 읽어 리스트로 반환
- seek(offset, whence=0): 파일의 현재 위치를 변경
- tell(): 파일 내 현재 위치를 반환