Python기초강의강좌, 파이썬기초강의강좌, 전역 변수, 기본 인수값, 키워드 인수
#019 파이썬 기초 - 함수 2편 (Python Function Part 2)
지난 시간에 이어 함수 강의 2편 시작합니다.
전역 변수 - global 문
함수나 클래스 내부에서 상위 블록에서 선언된 변수의 값을 변경하고 싶을 경우,
파이썬에게 이 변수를 앞으로 지역 변수가 아닌 전역(global) 변수로 사용할 것임을 알려 주어야 합니다.
이때 global 문을 이용합니다.
global 문을 사용하지 않으면, 함수 외부에서 선언된 변수의 값을 함수 내부에서 변경할 수 없습니다.
함수 안에서 동일한 이름으로 선언된 변수가 없을 경우,
함수 밖의 변숫값을 함수 안에서 읽고 변경할 수도 있습니다.
그러나, 이것은 프로그램을 읽을 때 변수가 어디서 어떻게 선언되었는지 파악하기 힘들게 만들기 때문에 추천할만한 방법이 아니며, 가능한 이런 경우를 피하시기 바랍니다.
global 문을 사용하면 그 블록의 밖에서 그 변수가 선언되어 있음을 알려 주므로 좀 더 프로그램이 좀 더 명확해집니다.
예제 (function_global.py로 저장하세요):
# Filename : function_global.py
x = 50
def func():
global x
print('x is', x)
x = 2
print ('Changed global x to', x)
func()
print('Value of x is', x)
▶ 실행결과 :
C:\Anaconda\envs\study_39\python.exe E:\python_study\function_global.py
x is 50
Changed global x to 2
Value of x is 2
▶ 동작 원리 :
global 문을 통해 x가 전역 변수임을 파이썬에게 알려 줍니다.
따라서, 이후로 x에 값을 대입하면 메인 블록의 x의 값 또한 변경됩니다.
하나의 global 문으로 여러 개의 전역 변수를 동시에 지정해 줄 수도 있습니다.
global x, y, z와 같이 하면 됩니다.
기본 인수값
어떤 특별한 경우, 함수를 호출할 때 인수를 선택적으로 넘겨주게 하여 사용자가 값을 넘겨주지 않으면 자동으로 기본값을 사용하도록 하는 것이 편할 때가 있습니다.
이런 경우, 기본 인수값을 지정하면 됩니다.
함수를 선언할 때 원하는 매개 변수 뒤에 대입 연산자 ( = )와 기본값을 입력하여 기본 인수값을 지정합니다.
이때, 기본 인수값은 반드시 상수이어야 합니다.
좀 더 정확히 말하자면, 불변 값이어야 합니다.
불변값에 대해서는 뒤 챕터에서 다룰 것입니다. 일단 지금은, 그래야 한다는 것만 기억해 두기 바랍니다.
예제 (function_default.py로 저장하세요):
# Filename : function_default.py
def say(message, times=1):
print(message * times)
say('Hello')
say('World', 5)
▶ 실행결과 :
C:\Anaconda\envs\study_39\python.exe E:\python_study\function_default.py
Hello
WorldWorldWorldWorldWorld
▶ 동작 원리 :
say는 지정된 숫자만큼 문자열을 반복하여 출력하는 함수입니다.
숫자를 지정하지 않으면, 기본값이 적용되어, 문자열이 한 번 출력됩니다.
이 결과는 매개 변수 times의 기본 인수값을 1로 지정해 줌으로써 얻어집니다.
프로그램에서 처음 say를 호출할 때에는 함수에 문자열만 넘겨주어 한번 출력하게 합니다.
두 번째 호출에서는 문자열과 인수 5를 넘겨주어 함수가 문자열을 5번 반복하여 말(say)하게 합니다.
※ 주의 ※
매개 변수 목록에서 마지막에 있는 매개 변수들에만 기본 인수값을 지정해 줄 수 있습니다.
즉, 기본 인수값을 지정하지 않은 매개 변수의 앞에 위치한 매개변수에 기본 인수값을 지정할 수 없습니다.
이것은 함수를 호출할 때 매개 변수의 위치에 맞춰서 값이 지정되기 때문입니다.
예를 들어, def func(a, b=5)는 옳은 함수 정의이지만 def func(a=5, b)는 옳지 않습니다.
키워드 인수
여러 개의 매개 변수를 가지고 있는 함수를 호출할 때, 그중 몇 개만 인수를 넘겨주고 싶을 때가 있습니다.
이때 매개 변수의 이름을 지정하여 직접 값을 넘겨줄 수 있는데 이것을 키워드 인수 라 부릅니다.
함수 선언 시 지정된 매개 변수의 순서대로 값을 넘겨주는 것 대신, 매개 변수의 이름 (키워드)를 사용하여 각각의 매개 변수에 인수를 넘겨주도록 지정해 줍니다.
키워드 인수를 사용하는 데 두 가지 장점이 있습니다.
첫째로, 인수의 순서를 신경 쓰지 않고도 함수를 쉽게 호출할 수 있는 점입니다.
둘째로는, 특정한 매개 변수에만 값을 넘기도록 하여 나머지는 자동으로 기본 인수값으로 채워지게 할 수 있습니다.
예제 (function_keyword.py로 저장하세요):
# Filename : function_keyword.py
def func(a, b=5, c=10):
print('a is', a, 'and b is', b, 'and c is', c)
func(3, 7)
func(25, c=24)
func(c=50, a=100)
▶ 실행결과 :
C:\Anaconda\envs\study_39\python.exe E:\python_study\function_keyword.py
a is 3 and b is 7 and c is 10
a is 25 and b is 5 and c is 24
a is 100 and b is 5 and c is 50
▶ 동작 원리 :
위의 func이라 이름 지어진 함수는 기본 인수값이 지정되지 않은 한 개의 매개 변수와, 기본 인수값이 지정된 두 개의 매개 변수, 총 세 개의 매개 변수를 가지고 있습니다.
첫 번째 호출 func(3, 7)에서, 매개 변수 a는 값 3 , 매개 변수 b는 7을 넘겨받으며, c에는 기본 인수값 10 이 주어집니다.
두 번째 호출 func(25, c=24)에서는, 첫 번째 인수인 25가 변수 a에 넘겨집니다.
그리고 매개 변수 c는 키워드 인수를 통해 값 24가 지정되며, 변수 b에는 기본값 5 가 주어집니다.
세 번째 호출 func(c=50, a=100)에서는, 모든 값을 지정하는 데 키워드 인수가 사용됩니다.
함수 정의에는 a 다음에 c가 정의되어 있지만, 키워드 인수를 사용하면 그 순서에 상관없이 c를 먼저 지정하고 a를 나중에 지정할 수도 있다는 점을 기억하세요.
이번 시간에는 전역 변수, 기본 인수값, 키워드 인수에 대해서 알아보았습니다.
다음 시간에 함수 3편으로 이어집니다.
감사합니다.
Do it! SQL을 찾아 주셔서 감사합니다. ♥ 댓글이 큰 힘이 됩니다. |
'IT > 파이썬 기초 (Python)' 카테고리의 다른 글
#021 파이썬 기초 - 모듈 1편 (Python Module Part 1) (125) | 2023.03.03 |
---|---|
#020 파이썬 기초 - 함수 3편 (Python Function Part 3) (78) | 2023.03.02 |
#018 파이썬 기초 - 함수 1편 (Python Function Part 1) (64) | 2023.02.28 |
#017 파이썬 기초 - 흐름 제어문 for, break, continue (102) | 2023.02.27 |
#016 파이썬 기초 - 흐름 제어문 while (77) | 2023.02.26 |
댓글