전역 변수

스크립트 전체에서 접근할 수 있는 변수

(함수 바깥에서 만들어진 변수)

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

+ Recent posts