키워드 매개변수와 변수의 영역
함수는 매개변수 설정 방법과 변수가 어디에서 정의되었는지에 따라 프로그램의 동작이 크게 달라질 수 있습니다.
이번 수업에서는 키워드 매개변수와 변수의 영역에 대해 알아보겠습니다.
매개변수의 이름으로 호출하는 키워드 매개변수
함수에 인자를 전달할 때, 인자를 순서를 기억하지 못할 때가 있습니다.
이러한 경우에 사용할 수 있는 것이 키워드 매개변수
입니다.
함수 호출 시 키워드 매개변수를 사용하면, 인수의 이름을 명시적으로 지정해 함수에 전달할 수 있습니다.
def greet(name, age):
print(f"안녕하세요, {name}님! 당신은 {age}살입니다.")
# 키워드 매개변수로 함수 호출
greet(name="홍길동", age=30)
# 순서를 바꿔서 함수 호출 가능
greet(age=25, name="이몽룡")
위 코드에서 greet
함수는 name
과 age
두 개의 매개변수를 받습니다.
함수를 호출할 때 name="홍길동", age=30
과 같이 매개변수의 이름을 지정하여 전달하면, 매개변수의 순서를 기억하지 않아도 됩니다.
이와 같이 함수를 활용하면 함수의 매개변수 순서를 기억하지 않아도 되므로, 코드의 가독성을 높일 수 있습니다.
함수 안에서만 존재하는 지역변수
함수 내부에서 정의된 변수는 지역변수라고 불립니다. 지역 변수는 함수의 실행이 끝나면 사라집니다.
이 지역변수는 함수 외부에서는 접근할 수 없으며, 다른 함수에서 같은 이름의 변수를 정의하더라도 서로 영향을 미치지 않습니다.
# 정사각형의 넓이를 계산하는 함수
def calculate_square_area(side):
# side 변수를 제곱하여 넓이를 계산
area = side ** 2
# 넓이 반환
return area
# 한 변의 길이가 5인 정사각형의 넓이 계산
result = calculate_square_area(5)
# 25 출력
print(result)
# 함수 내부에서 정의된 변수는 함수 외부에서 접근할 수 없음
# print(area)
# NameError: name 'area' is not defined
위 코드에서 area
변수는 calculate_square_area
함수 내에서만 유효하며, 함수 외부에서는 존재하지 않습니다.
함수 밖에서도 살아남는 변수: 전역변수
반대로, 함수 외부에서 정의된 변수는 전역변수라고 불리며, 모든 함수에서 접근 가능합니다.
하지만 함수 내부에서 전역변수를 변경하려면 global
키워드를 사용해야 합니다.
count = 0 # 전역변수
def increment():
# 전역변수 count를 함수 내에서 사용
global count
count += 1 # 전역변수 count를 증가시킴
increment()
print(count) # 1 출력
increment()
print(count) # 2 출력
global
키워드를 사용하면, 함수 내에서도 전역변수를 수정할 수 있게 됩니다.
그러나 전역변수의 남용은 코드의 가독성을 떨어뜨리고 디버깅을 어렵게 만들 수 있으므로, 꼭 필요 한 경우에만 사용하는 것이 좋습니다.
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!