Programming Language/Python

전역변수와 지역변수

D4tai1 2018. 8. 10.

1. 네임스페이스

1) 전역변수와 지역변수 차이

animal = 'cat'

def change_local() :
    animal = 'dog'
    print animal, id(animal)

change_local()
print animal, id(animal)
    

 

+ 파이썬 함수 id()는 변수가 같거나 다름을 증명하기 위해 사용.

 

[실행결과]

 

dog 91508648
cat 73809792

 

 

2) 함수 내에서 전역변수 설정

animal = 'cat'

def change_local() :
    global animal
    animal = 'dog'
    print animal, id(animal)

change_local()
print animal, id(animal)
    

 

[실행결과]

 

dog 102059944
dog 102059944

 


+ global 은 함수 내의 지역변수가 아닌 전역변수를 접근하기 위해 사용.

 

 

3) globals()와 locals()

animal = 'cat'

def change_local() :
    #global animal
    animal = 'dog'
    print animal, id(animal)
    print locals()  #현재 로컬 네임스페이스의 내용이 담긴 딕셔너리 반환

change_local()
print animal, id(animal)
print globals()     #현재 글로벌 네임스페이스의 내용이 담긴 딕셔너리 반환

 

+ globals()에는 기본으로 현재 파일위치, 패키지 등의 정보가 있어

생각한 것과 같이 내가 설정한 전역변수만 출력되지는 않음

 

[실행결과]

 

dog 100683488
{'animal': 'dog'}
cat 84754304

{'__file__': 'F:\\\xb9\xd9\xc5\xc1\xc8\xad\xb8\xe9\\test.py', 'animal': 'cat' }

 

'Programming Language > Python' 카테고리의 다른 글

서식 및 포맷  (0) 2018.08.10
이름  (0) 2018.08.10
에러처리  (0) 2018.08.09
위치인자  (0) 2018.07.29
함수  (0) 2018.07.29

댓글