지역변수vs 전역변수

 

지역변수? 지역구! 즉, 함수 내에서 선언하여 그 함수 내에서만 사용가능한 변수이다.

전역변수? 전역구! 즉, 함수 밖에서 선언하여 파일 내 모든 함수에서 사용 가능한 변수이다.

 

num=10   #전역변수
def f1():
    num=20   #지역변수. 저장하는 메모리가 전역과 서로 다르기때문에 에러안남.
    print('f1:',num)

def f2():
    x=5
    print('f2 x:',x)
    print('f2 num:', num)

def main():
    print('main num:', num)
#    print('main x:', x)  : 다른 함수의 지역변수 사용불가가
    f1()
    f2()
    print('main num:', num)

main()   #메인함수 먼저 출력

out)

 

 

그런데 코딩을 짜다보니 전역변수를 바꾸고 싶다면?

그럴 때는 함수 내에서 global <변수> 를 지정해주면 되지롱~

 

num=10   #전역변수
def f1():
    global num  #num을 전역변수로 지정(즉, 전역변수 수정).
    num=20   #지역변수. 저장하는 메모리가 전역과 서로 다르기때문에 에러안남.
    print('f1:',num)

def f2():
    num=15
    x=5
    print('f2 x:',x)
    print('f2 num:', num)

def main():
    print('main num:', num)
#    print('main x:', x)  : 다른 함수의 지역변수 사용불가가
    f1()
    f2()
    print('main num:', num)

main()   #메인함수 먼저 출력

out)

 

 

근데 왜 global을 써도 에러가 뜨는거지...? (멘붕)

+ Recent posts