: 특정한 기능을 하는 코드의 묶음
def
로 시작하여 :
으로 끝나고, 다음은 tab(들여쓰기)
로 코드 블록을 만든다.parameter(매개변수)
를 넘겨줄 수도 있다.return
을 통해 결과값을 전달 할 수도 있다. (return
값이 없으면, None
을 반환한다.)함수이름()
/ 함수이름(val1, val2)
와 같이 한다.def 함수이름(parameter1, parameter2) :
코드블럭
return value
def m_sum(a, b) :
return a + b
number = m_sum(1,3)
print(number) #4
#cf
n_number = print(7+3)
print(n_number) #None -> print함수는 None을 반환!!
n_number변수에 None이 저장됨
#correct
n_number = 7 + 3
print(n_number) #10
def func(x):
return x + 2
func(2)
2
는 (전달)인자(argument): 함수가 호출될 때, 인자를 지정하지 않아도 출력 될 기본 값을 설정할 수 있다.
🚨주의) 기본 인자값을 가지는 인자 다음에 기본 값이 없는 인자를 사용할 수는 없습니다.
def greeting(name='익명', age):
print(f'안녕? 난{name}, {age}살이야')
# # SyntaxError: non-default argument follows default argument
#correct
def greeting(age, name='익명'):
print(f'안녕? 난{name}, {age}살이야')
: 키워드 인자는 직접 변수의 이름으로 특정 인자를 전달할 수 있다.
def greeting(age, name='익명'):
print(f'안녕? 난 {name}, {age}살이야')
greeting(name='두준', age=30)
#'안녕? 난 두준, 30살이야"
🚨 주의) 키워드 인자를 활용한 다음에 위치 인자를 활용할 수는 없다!
greeting(age=30, '두준')
# SyntaxError: positional argument follows keyword argument
: 개수가 정해지지 않은 임의의 위치인자를 받기 위해서는 가변 인자 리스트(*args)를 활용.
args
는 tuple
이다.def func(a, b, *args):
: 정해지지 않은 키워드 인자들은 dict 형태로 처리가 되며, **
로 표현한다. 보통 kwagrs라는 이름을 사용하며, **kwargs
를 통해 인자를 받아 처리할 수 있다.
def func(**kwargs):