전역 변수
스크립트 전체에서 접근할 수 있는 변수
(함수 바깥에서 만들어진 변수)
x=1 #전역변수
def f():
print(x)
f()
print(x)
>>1
>>1
지역 변수
해당 변수를 만든 함수 안에서만 접근할 수 있는 변수
(함수 내부에서 만들어진 변수)
def f():
x=1 #지역변수
print(x) #접근가능, 제대로 출력이 된다.
f()
print(x) #에러 발생, 변수 x를 만든 함수 밖에서는 변수 x를 사용할 수 없다.
>>1
Traceback (most recent call last):
File "...................", line 6, in <module>
print(x)
NameError: name 'x' is not defined #x가 정의되지않음
함수 안에서 전역 변수 사용
함수 안에서 전역 변수를 변경하려 하면 에러가 발생한다.
x=1
def f():
x +=1 #에러 발생
print(x)
f()
>>Traceback (most recent call last):
File "//", line 6, in <module>
f()
File "//", line 3, in f
x +=1
UnboundLocalError: local variable 'x' referenced before assignment
#지역변수 x가 할당되지않았는데 참조함.
하지만 global 키워드를 사용하면 전역 변수의 변경이 가능하다.
x=1 #전역 변수
def f():
global x #전역 변수 x를 사용하겠다고 명시
x+=1
print(x)
f()
print(x)
>>2
>>2 #전역 변수 x도 변경이 된 것을 볼 수 있다.
※global을 이용하여 함수 내에서 전역 변수를 만들 수 있다.
def f():
global x
x=1
print(x)
f()
print(x) #함수 밖에서 x 호출
>>1
>>1
'Python' 카테고리의 다른 글
Python - 컴프리헨션(Comprehension) (0) | 2020.08.25 |
---|---|
Python - 람다함수(익명함수) (0) | 2020.08.24 |
Python - mutable객체, immutable객체 (0) | 2020.08.22 |
Python - 빠른 입력 (0) | 2020.08.17 |
Python - 함수 인자의 개수를 알 수 없을 때 (0) | 2020.08.11 |