Q & A

매개변수는 최대 몇 개까지 지정할 수 있나요?

함수에 매개변수를 직접 지정하는 방식은 매개변수를 255개까지 지정할 수 있습니다. 하지만 *arg**kwargs 가변 인수 방식은 리스트(튜플), 딕셔너리의 최대 요소 개수를 따릅니다.

파이썬은 재귀 호출을 최대 몇 번까지 할 수 있나요?

파이썬 인터프리터 소스 코드(C 언어)에는 최대 재귀 호출 횟수가 1,000으로 정의되어 있습니다. 만약 최대 재귀 호출 횟수를 늘리려면 sys 모듈의 setrecursionlimit 함수를 사용하면 됩니다.

import sys
sys.setrecursionlimit(2000)    # 최대 재귀 호출 횟수를 2000으로 늘림

함수를 한 줄로 만들 수 있나요?

함수는 :(콜론) 바로 뒤에 코드를 입력하면 한 줄로 만들 수 있습니다. 물론 공백 없이 붙여도 되지만 보통 가독성을 위해 한 칸 띄웁니다.

def hello(): print('Hello, world!')

함수를 변수, 리스트에 넣어서 호출할 수 있나요?

함수는 변수에 할당하거나 리스트에 넣어서 호출할 수 있습니다. 단, ( )(괄호)를 붙이지 않고 함수를 그대로 넣어야 합니다. 만약, ()를 붙이면 반환값이 들어갑니다.

def hello():
    print('Hello, world!')
 
x = hello    # 함수를 변수에 할당
x()          # Hello, world!: 변수에 들어있는 함수 호출
 
y = [hello, hello]    # 함수를 리스트에 넣음
y[0]()                # Hello, world!: 리스트에 들어있는 함수 호출
y[1]()                # Hello, world!: 리스트에 들어있는 함수 호출

순수 함수와 비순수 함수는 무엇인가요?

순수 함수(pure function)는 함수의 실행이 외부 상태에 영향을 끼치지 않는 함수를 뜻합니다. 따라서 순수 함수는 부수효과(side effect)가 없어야 합니다.

def add(a, b):      # 함수 실행이 외부 상태에 영향을 끼치지 않음
    return a + b
 
print(add(1, 2))

반대로 비순수 함수(impure function)는 수정자 함수(modifier function)라고도 하는데 함수의 실행이 외부 상태에 영향을 끼치는 함수입니다.

number_list = [1, 2, 3]
 
def append_number(n):        # 함수 실행이 외부 상태에 영향을 끼침
    number_list.append(n)    # 함수 외부에 있는 number_list의 상태가 바뀜
 
append_number(4)
최근 수정: 2017년 7월 6일, 목요일, 오후 5:14