python 전역 변수

Sirius·2023년 9월 12일

코딩파편

목록 보기
1/1
post-thumbnail

Local variable


파이썬 함수에서 선언되어 사용되는 변수는 (parameter 포함) 함수 내부에서만 쓸 수 있다.


def func(x:int):
	x+=1
    y="local"
    return
    
 x=1
 print(x)
 func(x)
 print(x)

1
1

위 코드에서 x값의 변화가 없듯이, 함수의 parameter 포함, 내부에서 선언된 변수는 함수실행 이후 유효범위에서 벗어난다.



python의 pass by assignment에 따라 mutable 한 객체 (list,dict 등)은 함수 내부에서 local 변수로 복사 없이 사용 가능하지만 immutable한 객체(int,str,tuple 등)은 어떻게 해야될까?



Global variable

이를 해결하기 위한 방법 중 하나가 함수 내부에서 전역변수임을 나타내는 키워드, 'global'을 사용하는 것이다.

def func(a:int):
    a+=10
    global x
    x+=1
    return

x=10
print(x)
func(x)
print(x)

10
11


주의 할 점으로 전역변수 선언과 동시에 할당은 할 수 없다는 것이다.

global var

와 같이 선언 후에 값을 수정할 수 있다.
또 전역변수 선언 여부와 관계없이 매개변수로 전역변수를 인자로 주어도 매개변수가 받은 값은 복사된 값이므로 원본 데이터에 영향을 주지 않는다.

0개의 댓글