-
파이썬 | 사용자 정의 함수(3): 지역변수와 전역변수Programming/Python 2025. 6. 20. 18:00반응형
1. 파이썬
2. 변수
- 2.1. 기본자료형
- 2.2. 복합자료형
- 2.3. 자료형 메소드
- 2.4. 객체 복사
3. 조건문과 반복문
4. 예외 처리
5. 사용자 정의 함수
6. 모듈, 패키지, 라이브러리
7. 파일 처리
8. 객체 지향 프로그래밍
1. 지역변수

지역 변수 변수는 정의된 위치에 따라 변수 이름이 영향을 미치는 범위가 결정된다. 사용자 정의 함수 내에서 정의된 변수를 지역변수(local variable)라고 하며, 해당 함수 내에서만 변수 이름이 통용된다. 즉, 아래 예시와 같이 서로 다른 함수 내에서 정의된 두 변수가 같은 이름을 가지더라도 서로에게 영향을 주지 않는다. 이러한 지역변수 기능은 사용자 정의 함수 내부에서 예기치 않은 연산이 수행되더라도 전체 프로그램에 주는 영향을 최소화할 수 있다.
def newFunc1(num1, num2): result = num1 * num2 # 지역변수1 print(result) def newFunc2(num1, num2): result = num1 // num2 # 지역변수2 print(result) newFunc1(3, 5) newFunc2(7, 11)2. 전역변수
2.1. 전역변수 호출

전역 변수(1) 사용자 정의 함수 밖에서 변수를 정의하면 모든 함수를 포함한 전체 프로그램에서 변수 이름이 통용되는데, 이를 전역변수(global variable)라고 한다. 아래 예시와 같이 전역변수가 서로 다른 함수 내에서 새롭게 정의되지 않고 단순히 호출되는 경우에는 변수 이름이 통용되어 함수 밖에서와 동일한 값을 출력한다.
def newFunc1(num1, num2): result = num1 * num2 # 지역변수1 print(result, count) def newFunc2(num1, num2): result = num1 // num2 # 지역변수2 print(result, count) count = 0 # 전역변수 newFunc1(3, 5) newFunc2(7, 11) print(count)
2.2. 전역변수와 동일한 이름의 지역변수
전역 변수(2) 만약 사용자 정의 함수 내에서 전역변수와 동일한 이름으로 변수를 선언한 뒤 새로운 값을 할당하면 새로운 지역변수로 정의된다. 이 경우에는 전역변수와 지역변수의 이름이 동일하더라도 서로 다른 변수로 취급되기 때문에 영향을 주고받지 않는다. 사용자 정의 함수의 연산으로 전역 변수에 저장된 값을 갱신하고 싶다면 전역변수를 해당 함수의 전달 인자로 입력한 뒤, 함수 내에서 연산한 결과를 return 명령문으로 반환하여 전역변수에 다시 저장하는 방법이 있겠다.
def newFunc1(num1, num2): result = num1 * num2 count = 1 # 지역변수a print(result, count) def newFunc2(num1, num2): result = num1 // num2 count = 2 # 지역변수b print(result, count) count = 0 # 전역변수 newFunc1(3, 5) newFunc2(7, 11) print(count)
2.3. global 명령문
전역 변수(3) 전역변수를 사용자 정의 함수에 전달 인자로 전달하는 것이 아니라, 사용자 정의 함수 내에서 전역변수에 직접 영향을 주고 싶다면 함수 내에서 global 명령문을 사용하여 전역변수와 동일한 이름으로 변수를 정의하면 된다. 이는 사용자 정의 함수 외부에 정의된 전역변수를 그대로 가져와 사용하겠다는 것을 의미한다. 한편 전역변수가 리스트나 딕셔너리와 같이 여러 값을 다루는 자료형을 저장하고 있다면 global 명령문을 선언하지 않더라도 사용자 정의 함수 내에서 전역변수에 영향을 줄 수 있다. 따라서 해당 자료형으로 지역변수를 다룰 때에는 특히 주의해야 한다.
def newFunc1(num1, num2): result = num1 * num2 global count # 전역변수 count += 1 print(result, count) def newFunc2(num1, num2): result = num1 // num2 global count # 전역변수 count += 1 print(result, count) count = 0 # 전역변수 newFunc1(3, 5) newFunc2(7, 11) print(count)[함께 읽으면 좋은 페이지]
파이썬 | 모듈, 패키지, 라이브러리: import-as
1. 파이썬 1.1. 기본 기능과 규칙 2. 변수2.1. 기본자료형 2.1.1. 정수형, 실수형, 논리형, 문자열 2.2. 복합자료형 2.2.1. 리스트, 튜플 2.2.2. 딕셔너리, 세트 2.3. 자료형 메소드 2.3.1. 리스트 메소드 2.3.2.
vedacube.tistory.com
참고문헌
- 박진수. (2019). 바로 쓰는 파이썬. 서울대학교출판문화원.
반응형'Programming > Python' 카테고리의 다른 글
파이썬 | 객체 복사: 할당, 얕은 복사, 깊은 복사 (2) 2025.08.15 파이썬 | 모듈, 패키지, 라이브러리: import-as (1) 2025.07.18 파이썬 | 사용자 정의 함수(2): 매개변수와 전달인자 (0) 2025.06.13 파이썬 | 사용자 정의 함수(1): def-return (1) 2025.06.06 파이썬 | 예외 처리: try-except (1) 2025.05.23