Python Built-in Functions
파이썬 내장 함수
* python.org - Built-in Functions (URL)
Built-in Functions — Python 3.10.2 documentation
Built-in Functions The Python interpreter has a number of functions and types built into it that are always available. They are listed here in alphabetical order. abs(x) Return the absolute value of a number. The argument may be an integer, a floating poin
docs.python.org
- 파이썬에 내장되어 있는 여러 함수들을 소개한다.
- 아래 함수들은 파이썬에 기본적으로 "내장"되어 있으므로, 별다른 모듈 임포트를 필요로하지 않는다.
How to Read (본 포스트의 설명을 보는 방법)
- 본 포스트에서는 아래와 같은 방식으로 내장 함수들을 설명하고 있다.
(\(\texttt{int()}\) 함수를 예로 들었다.)
int(x, base=10) # 함수 원형 (Prototype)
데이터를 int 객체로 변환하여 반환한다. # 함수에 대한 개괄적인 설명
[Parameters] # 함수가 요구하는 매개변수들에 대한 자세한 설명
1) x : int 객체로 변환할 데이터 (int | float | str | bytes | bytearray | __int__() 혹은 __index__() 혹은 __trunc__()가 구현된 객체)
2) base : x의 진법 (0 | 2에서 36사이의 정수) [10]
base값을 지정한 순간, x는 str, bytes, bytearray 타입 중 하나이어야 한다.
base를 0으로 할 경우, x의 코드 리터럴과 똑같이 해석할 것을 지시한다.
코드 리터럴은 2진수의 경우 0b나 0B, 8진수의 경우 0o나 0O, 16진수의 경우 0x나 0X와 같은 접두어가 붙는 코드를 의미한다.
예를 들어 base를 2로 할 경우, x를 이진수로 해석한다.
# 소괄호에는 해당 매개변수의 데이터 타입을, 대괄호에는 해당 매개변수의 기본값을 명시해놓았다.
[Returns] # 함수가 반환하는 값들에 대한 자세한 설명
1) x를 int형으로 변환한 값을 반환한다. (float형 데이터의 경우 소수점 이하는 절삭한 값으로 변환한다. 올림 및 반올림하지 않는다.)
2) x에 아무런 값도 지정되지 않으면 0을 반환한다.
3) x가 __int__() 함수가 정의된 객체라면, x.__int__()를 반환한다. (__int__()가 정의되어 있지 않으면, __index__()로 대체된다. Python3.8)
4) x가 __index__() 함수가 정의된 객체라면, x.__index__()를 반환한다.
5) x가 __trunc__() 함수가 정의된 객체라면, x.__trunc__()를 반환한다.
# Usage # 함수의 실사용 예시
>>> int('010', 0) # '010'을 코드 리터럴에 맞게 해석할 것을 지시했지만, 010은 옳지 않은 리터럴이다.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 0: '010'
>>> int('0o10', 0) # 8진수 10을 표기하고 싶었다면, '0o10' 혹은 '0O10' 으로 해야 옳다.
8
abs() Function (abs() 함수)
abs(x)
"""
수치 데이터의 절댓값을 반환한다.
[Parameters]
1) x : 수치 데이터 (int | float | __abs()__가 구현된 객체)
[Returns]
1) x의 절댓값을 반환한다.
2) x가 복소수일 경우, 크기(Magnitude)를 반환한다.
"""
aiter()
all()
any()
anext()
ascii()
bin()
bool()
breakpoint()
bytearray()
bytes()
callable()
chr()
classmethod()
compile()
complex()
delattr()
dict()
dir()
divmod()
enumerate()
eval()
exec()
filter()
float()
format()
frozenset()
\(\texttt{getattr()}\) Function (\(\texttt{getattr()}\) 함수)
getattr(object, name[, default])
"""
객체 object의 name 속성(Attribute)값을 반환한다.
getattr(x, 'foobar') 와 x.foobar 는 예외사항이 없을 경우 동일한 기능을 수행하지만,
getattr() 함수를 사용하면 여러 예외에 대처하기 용이하다.
[Parameters]
1) object : 데이터가 저장된 객체
2) name : object에서 반환할 데이터가 속한 속성 (str)
두 개의 언더스코어('__')로 시작하는 Private Attribute들이 이름이 서로 중복될 경우,
그 중 하나는 반드시 수동적으로 Mangling해주어야 한다.
(Private Name Mangling은 컴파일 시간이 수행되기 때문이다.)
3) default : object에 name이 존재하지 않은 경우 대신 반환할 데이터
(선택사항)
[Returns]
1) object의 name(속성)에 저장된 데이터를 반환한다.
2) object에 name이 존재하지 않을 경우, default가 대신 반환된다.
3) object에 name이 존재하지 않으면서 default값도 지정되어 있지 않은 경우, AttributeError를 발생시킨다.
"""
globals()
hasattr()
hash()
help()
hex()
id()
input()
int() Function (int() 함수)
int(x, base=10)
"""
데이터를 int 객체로 변환하여 반환한다.
[Parameters]
1) x : int 객체로 변환할 데이터 (int | float | str | bytes | bytearray | __int__() 혹은 __index__() 혹은 __trunc__()가 구현된 객체)
2) base : x의 진법 (0 | 2에서 36사이의 정수) [10]
base값을 지정한 순간, x는 str, bytes, bytearray 타입 중 하나이어야 한다.
base를 0으로 할 경우, x의 코드 리터럴과 똑같이 해석할 것을 지시한다.
코드 리터럴은 2진수의 경우 0b나 0B, 8진수의 경우 0o나 0O, 16진수의 경우 0x나 0X와 같은 접두어가 붙는 코드를 의미한다.
예를 들어 base를 2로 할 경우, x를 이진수로 해석한다.
[Returns]
1) x를 int형으로 변환한 값을 반환한다. (float형 데이터의 경우 소수점 이하는 절삭한 값으로 변환한다. 올림 및 반올림하지 않는다.)
2) x에 아무런 값도 지정되지 않으면 0을 반환한다.
3) x가 __int__() 함수가 정의된 객체라면, x.__int__()를 반환한다. (__int__()가 정의되어 있지 않으면, __index__()로 대체된다. Python3.8)
4) x가 __index__() 함수가 정의된 객체라면, x.__index__()를 반환한다.
5) x가 __trunc__() 함수가 정의된 객체라면, x.__trunc__()를 반환한다.
"""
# Usage
>>> int('010', 0) # '010'을 코드 리터럴에 맞게 해석할 것을 지시했지만, 010은 옳지 않은 리터럴이다.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 0: '010'
>>> int('0o10', 0) # 8진수 10을 표기하고 싶었다면, '0o10' 혹은 '0O10' 으로 해야 옳다.
8
isinstance()
issubclass()
iter()
len()
list()
locals()
map()
max()
memoryview()
min()
next()
object()
oct()
open()
ord()
pow()
print()
property()
range()
repr()
reversed()
round()
set()
\(\texttt{setattr()}\) Function (\(\texttt{setattr()}\) 함수)
setattr(object, name, value)
"""
객체 object의 name 속성(Attribute)에 값을 저장한다.
setattr(x, 'foobar', 123) 와 x.foobar = 123 는 동일한 기능을 수행한다.
[Parameters]
1) object : 데이터를 저장할 객체
2) name : object에 저장할 데이터가 속한 속성 (str)
이때, 속성은 기존에 존재하고 있던 것이어도 괜찮고,
존재하지 않는 속성이라면 새로 생성하여 데이터를 저장한다.
두 개의 언더스코어('__')로 시작하는 Private Attribute들이 이름이 서로 중복될 경우,
그 중 하나는 반드시 수동적으로 Mangling해주어야 한다.
(Private Name Mangling은 컴파일 시간이 수행되기 때문이다.)
3) value : 저장할 데이터
[Returns]
setattr() 함수는 아무것도 반환하지 않는다.
"""
slice()
sorted()
staticmethod()
str()
sum()
super()
tuple()
type()
vars()
zip()
__import__()