본문 바로가기
공부 & 프로젝트/파이썬

헷갈리는 파이썬 코딩 구조 : 메서드와 내장함수

by donnanoa82 2025. 10. 11.

아직까지도 가장 헷갈려하는 게 메서드와 내장함수다. 그게 어떤거냐면 예를 들어: 

python = "Python is Amazing"

메서드 방식 : python.lower()

내장 함수    : len(python)


#메서드 방식

string 문자열 자료형에 속한 함수, 즉 메서드 method

문법 : 문자열.메서드()

   예 : python = "Python is Amazing"

         print(python.lower())

    == "Python is Amazing"이라는 문자열 객체가 있고, 그 객체 안에 lower()이라는 기능(함수) 들어있음 

    ==> 이 문자열을 소문자로 바꿔줘 ! 라고 문자열 객체에 직접 명령

 

 

#내장 함수 방식

파이썬이 전역적으로 제공하는 함수. 즉, 어떤 자료형이든 길이를 구할 수 있게 설계된 범용 함수

문법 : len(객체)

   예 : python = "Python is Amazing"
         print(len(python))

   == 내부적으로 문자열, 리스트, 딕셔너리 등 여러 객체의 “길이”를 구하는 기능을 객체별로 다르게 작동하도록 설계

 

 

Q. lower(python) 또는 python.len() 이 되나 ? 

A. XXX

    lower의 경우, 전역 함수로 정의 되어 있지 않기에 lower(python) 형태 사용 불가

    len은 메서드가 아닌 전역 함수이기에 python.len() 형태 사용 불가 

 


 

메서드와 내장 함수 구조 차이

[파이썬 프로그램 전체 공간 ─ Global Scope]

├── 내장함수 (built-in functions)
│     ├── len()
│     ├── print()
│     ├── type()
│     ├── range()
│     └── ...

└── 객체들 (objects)
      ├── 문자열(str)
      │     ├── "Python".lower()
      │     ├── "Python".upper()
      │     ├── "Python".replace()
      │     └── ...
      │
      ├── 리스트(list)
      │     ├── [1,2,3].append()
      │     ├── [1,2,3].pop()
      │     └── ...
      │
      └── 딕셔너리(dict)
            ├── {"a":1}.keys()
            ├── {"a":1}.items()
            └── ...

 

 

둘의 차이점

내장 함수 : 파이썬에게 요청하는 것 (e.g. len("Python") ==> "파이썬, 이 문자열 길이 알려줘" ==> "Python".__len__() 실행

메서드 : 문자열 스스로 행동하는 것 (e.g. "Python".lower() ==> "내가 내 자신을 소문자로 바꾸겠다"

 

 

Q. 그렇다면, 어떤 게 내장함수, 어떤 게 메서드인지 외워야 하나? 

A. 어느정도는 외워야 함. BUT 패턴을 이해해서 외우는 게 더 쉬움

 

외워야 하는 대표 내장 함수 (10~15개 정도면 충분)

함수  설명 예시
len() 길이(요소 개수) 구함 len("abc"), len([1,2,3])
type() 자료형 확인 type("hello")
print() 콘솔에 출력 print("hi")
range() 숫자 범위 생성 range(5)
input() 사용자 입력 받기 input("이름: ")
int(), float(), str() 형변환 int("10"), str(10)
sum(), max(), min() 리스트 등의 합, 최댓값, 최솟값 sum([1,2,3])
sorted() 정렬된 리스트 반환 sorted([3,1,2])
zip() 여러 리스트 묶기 zip([1,2], ['a','b'])

 

그 외는 대부분 “객체.메서드()” 구조

자료형  메서드 예시 의미
문자열 .lower(), .upper(), .replace(), .split() 문자열 조작
리스트 .append(), .pop(), .sort(), .remove() 리스트 수정
딕셔너리 .keys(), .values(), .items(), .get() 키-값 조작
세트(set) .add(), .union(), .intersection() 집합 연산

 

패턴으로 구분하는 요령

구분 기준 특징  예시
여러 자료형에서 공통으로 작동함 → 내장 함수 len(x), type(x), sum(x)
특정 자료형 전용 기능임 → 메서드 "abc".lower(), [1,2].append()