코딩
[파이썬 3.7] 함수의 응용
robin_H
2020. 8. 10. 18:45
함수를 더 효율적으로 사용하고 싶다면 함수와 함께 쓰이는 변수들의 특징을 알아두는 것이 좋다. 함수와 함께 쓰이는 변수로는 전역 변수와 지역 변수가 있다.
전역 변수는 함수 코드 밖의 코드에서 정의된 변수이고, 지역 변수는 함수 코드 안에서 정의된 변수이다.
a = 1
def func():
b = 1
print(a)
print(b)
위의 코드에서 a는 전역 변수, b는 지역 변수이다. 여기에서 print(a)를 할 때 전역 변수 a를 코드 내에서 찾아와서 실행한다. print(b)는 지역 변수 b를 사용했으므로 함수 내에서만 활동이 이루어진다.
하지만 만약에 a를 함수 내에서 변화시키는 코드가 있다면 오류가 난다.
a = 1
def func():
b = 1
a = a + 1
print(a)
print(b)
위 코드의 실행 결과는 오류이다. 이럴 경우에는 a를 함수 내에서 다시 정의해주는 것이 좋다.
또한 이 코드에서 함수 밖에서 print(b)를 실행시키면 오류가 난다. 왜냐하면 b는 지역 변수이기 때문에 함수가 쓰이고 난 뒤에는 없어지기 때문이다.
print(b)
이처럼 따로 print(b)를 실행시키면 함수가 쓰이고 난 뒤이기 때문에 오류가 난다. 하지만 global이라는 기능은 이를 막아준다.
global은 함수 내의 지역 변수의 값을 함수가 쓰이고 난 뒤에도 유지될 수 있게 한다.
def func():
b = 1
global b
b = b + 1
print(b)
func()
print(b)
위의 코드를 실행시키면 [2, 2]가 나온다. 함수가 실행된 뒤에도 지역 변수값이 유지된 것을 확인할 수 있다.
이러한 함수의 응용 기능들을 잘 알아두면 코드를 작성할 때 더욱 편리할 것 이다.