Wireframe

파이썬 내장함수 일람 – Python 3.6.2 기준

파이썬 내장함수와 관련하여 간단하게 분류별로 나누고 정리해 보았다. 보다 자세한 사용법에 대해서는 파이썬 표준라이브러리 문서나 대화형쉘에서 help()를 이용해서 도움말을 얻도록 하자. 이 내장함수들은 하나 이상의 타입의 인자를 받을 수도 있고, 별도의 옵션 인자를 받기도 한다. 예를 들어 max() 함수는 max(a, b, c)와 같이 쓸 수도 있지만, max(aList)와 같이 연속열 1개를 인자로 받기도 하며, key= 파라미터를 줄 수도 있다. 본 글에서는 이런 세부 내용에 대해서는 따로 언급하지 않는다.
그외에 객체/모듈 조사 명령을 사용하여 내장 함수 목록을 뽑아내는 방법이 있는데, 이 부분은 글의 말미에서 추가로 소개하겠다.

updated : 파이썬 내장함수의 사용법을 일일이 적어 두는 것이 가독성도 좋지 못하고 별 필요가 없는 내용이라 판단되어, 내용은 간소화하고 분류별로 정리했습니다.

파이썬 표준 라이브러리

기본적으로 모든 내장 함수 및 표준 라이브러리 내 함수의 도움말은 표준 라이브러리 문서를 직접 참고하는 습관을 들여야 합니다.

내장함수 목록

다음은 파이썬의 내장함수 목록이다. 내장함수들은 __bulitins__라는 모듈에 정의되어 있다. 내장함수는 매우 기본이 되는 함수들이라 할 수 있지만, 모두 외울 필요는 없다. 자신이 자주 쓰게 되는 것들에 대해서는 자연스럽게 외우게 되어 있다. 사실 내장함수외에도 표준 라이브러리에는 엄청나게 많은 모듈과 함수들이 있으며, 이들은 외워서 쓰는 것이 아니라 대략적으로 알고 있다가 필요할 때 찾아보고 쓰는 편이 맞다. (그러니까 그런식으로 암기로 파이썬을 절대 공부하지 말 것) 또한 파이썬 표준 문서는 브라우저 북마크에 등록해두고 필요할 때마다 찾아봐야 한다.

산술 연산 함수

사칙연산 외의 산술 계산에 사용되는 함수들이다.

여러 기본 타입/클래스의 생성자

여러 타입들의 생성자이다. 타입에 따라서 비어있는 인스턴스를 만들 수도 있고, 다른 타입의 값을 해당 타입의 값으로 변환할 수도 있다. 예를 들어 bool 타입은 불리언 대수(참/거짓)을 의미하는데, bool(1)True가 되고 bool(0)False가 되는 식이다. 그외에 list는 우리가 알고 있는 그 리스트가 맞고, list()라고만 하면 빈 리스트를 생성한다.

런타임 관련

프로그램의 실행 중에 특정 텍스트를 받아서 컴파일하고 실행한다. 보안상의 문제로 사용하지 않을 것을 권장한다.

연속열/반복 관련

연속열, 반복자, 생성자와 관련된 함수들이다. 대부분 매우 중요하다고 보면 된다.

문자열 및 IO 관련

기타 객체/모듈 조사용

특정 객체를 조사하는데 유용한 함수들이다. 실제로 자주 쓰일 일은 없겠지만, 알아두면 외부 모듈들을 사용하거나 디버깅하는데 큰 도움을 받을 수 있다.

그외

내장함수 목록 구하기

내장함수는 __builtins__ 모듈에 정의되어 있다고 했다. 그러하다면 위에서 살펴본 dir 함수를 이용해서 해당 모듈의 속성 이름을 모두 구할 수 있다. 하지만 실행해보면, 여기에는 모듈의 속성이 모두 나오는데다가, 기본 예외 클래스들도 다 정의가 되어 있기 때문에 함수가 아닌 것도 많다.
따라서 다음과 같이 필터링을 할 조건을 세워보자

  1. 대문자로 시작하는 것은 주로 예외 클래스들이다. 함수는 소문자로 시작한다.
  2. __로 시작하는 것은 일반적으로 내부적으로만 쓰려는 이름이다. 제외한다.
  3. 실행가능해야 한다. 즉, callable로 확인할 수 있어야 한다.

그런데 dir() 함수로 얻는 결과는 문자열의 리스트로, 속성들의 이름만 얻을 뿐이다. 어떻게 해당 이름의 속성이 실행가능한지 알 수 있을까? 이를 위해서는 특정한 객체의 속성을 이름만 가지고 액세스할 수 있어야 하는데, 그런 함수가 위에 있다. 바로 getattr()이다.
따라서 이 함수들을 이용해서 다음과 같이 내장 함수들의 목록을 구할 수 있다. 참고로 copyrightcredits는 내장함수는 아닌데 __builtins__에 끼어 있다. 이들은 제외한다.


def get_builin_funcs():
  names = dir(__builtins__) ## 1
  name_filter = lambda s: s[0].islower and not s.startswith('__') ## 2
  call_filter = lambda s: s not in ('copyright', 'credit') \
                          and callable(getattr(__builtins__, s))  ## 3
  ## 이 두 필터를 적용한 이름의 리스트
  filtered_names = filter(call_filter, filter(name_filter, names))
  ## 각 이름들을 함수로 바꾸어 리턴한다.
  get_func = lambda s: getattr(__builtins__, s)
  return list(map(get_func, filtered_names))

이를 이용해서 각 내장 함수의 이름과 그 함수의 간이 도움말을 출력해보자. 모든 객체는 __name__, __doc__ 속성을 가지고 있는데 이들이 각각 이름과 간이 도움말에 해당한다.


funcs = get_builtin_funcs()
for f in funcs:
  print(f.__name__)
  print()
  print(f.__doc__)
  print()
  print("=" * 80)
  print()
  print()

실행해보면 각 함수의 이름과 설명을 순차적으로 출력해줄 것이다.

Exit mobile version