변수의 생존 범위 : global, local
Local > Enclosing function > Global > Builtin
전역변수(Global Variables)의 경우 모듈 어디서나 접근 가능한 반면, 지역변수(Local Variables)는 함수 내에서만 유효합니다. 그래서, 함수 내부에서 변수를 참조할 때, 먼저 해당 함수 내의 변수를 확인하고, 없으면 상위 함수 또는 전역 변수를 참조합니다.
매개변수?
함수에 전달되는 인수를 매개변수(parameter)라고 합니다.
기본값 매개변수를 설정할 수 있으며, 함수 호출 시 값을 전달하지 않으면 기본값이 사용됩니다.
가변 매개변수?
*를 사용하여 가변 개수의 인수를 받을 수 있습니다.
인수의 매개변수는 동적이기에 원하는 수만큼을 매개변수로 받을수 있으며,
또한, **를 사용하여 키-값 형태의 인수를 받을 수 있어 딕셔너리를 인수로 전달할수 있습니다.
키워드 매개변수?
함수명(매개변수=값) 형태로 매개변수를 지정할 수 있습니다.
가변 매개변수와 키워드 매개변수 혼용:
가변 매개변수와 키워드 매개변수를 함께 사용할 수 있습니다.
def fu1(*ar):
print(ar)
for a in ar:
print('밥:'+a)
fu1('공기밥','주먹밥')
fu1('공기밥','주먹밥','김밥')
('공기밥', '주먹밥')
밥:공기밥
밥:주먹밥
('공기밥', '주먹밥', '김밥')
밥:공기밥
밥:주먹밥
밥:김밥
위 코드의 출력결과
# dict를 인수로 전달
def fu3(w,h,**etc): # **을 써주면 키벨류->dict로 처리가 된다.
print('몸무게:{}, 키:{}'.format(w,h))
print(etc)
fu3(66, 177, irum='홍길동')
fu3(78, 178, irum='고길동',nai=22)
def fuFinal(a,b,*c,**d):
print(a, ' ', b)
print(c)
print(d)
fuFinal(1,2)
fuFinal(1,2,3,4,5)
fuFinal(1,2,3,4,5,m=6,n=7)
몸무게:66, 키:177
{'irum': '홍길동'}
몸무게:78, 키:178
{'irum': '고길동', 'nai': 22}
1 2
()
{}
1 2
(3, 4, 5)
{}
1 2
(3, 4, 5)
{'m': 6, 'n': 7}
위 코드의 출력결과