python코드가 너무 길어지면 코드 관리하기도 힘들고, 에러가 발생하면 추적하기 힘들다,
보통은 함수를 사용하고 여기서 나아가면 .py를 새로 만들어서 import로 새로 생성한 라이브러리를 불러와서 처리하기도 한다.
잘만하면 아주 간결하게 코드를 만들 수 있고, 후임에게 전달할때도 쉽게 전달이 가능하다.
하지만 이렇게 하다보면 정말 많은 함수들이 생성되고, 함수에 상관없이 session처럼 사용자가 항상 들고다니는 변수가 있을 수있다.
이럴때 사용하는 것이 global 변수 == 전역 변수 이다.
전역변수
"global 변수명"으로 설정하는 전역 변수를 함수에 상관없이 코드자체에서 항상 들고 다니는 변수라고 생각하면 된다.
원래 함수 안에서 지정된 변수는 return없이는 함수 밖에서 쓸수없다. NameError가 발생할 것이다.
#실행 def test(): a="이것은 지역변수입니다" return a print(test()) print(a) |
#결과 |
하지만 함수랑 상관없이 코드를 사용할동안 항상 들고다니는 변수가 필요할때도 있을것이다. 그럴때 global을 사용하는것이다.
#실행 def test(): global a a = 3 b = 2 return a + b print(test()) print(a) |
#결과 5 3 |
이렇게 함수 안에서 global a로 지정하면, 굳이 return으로 함수 밖으로 빼지않아도 a를 알 수 있다.
이때, 함수밖에서도 global로 지정을 해줘야 하고, 함수내에도 global지정을 해주어야만 한다.
좀더 상세하게 설명하자면, global "변수" -> "global_변수"라는 특이한 이름의 변수가 새롭게 생성되었다고 보면된다.
#실행 global_a='' def test(): a = 3 global_a=a b = 2 return a + b,global_a a=test()[1] print(test()[0]) print(a) |
#출력 5 3 |
session이 저장되지 않을경우 아래처럼 전역변수로 설정해도 된다.
단, 함수내에서 global 변수를 사용하기 전에 global지정을 먼저 해줘야 한다. 안그려면 아래와 같은 에러가 발생한다.
#실행 global a def test(): a = 3 global a b = 2 return a + b print(test()) print(a) |
끝.
'프로그래밍 > Python' 카테고리의 다른 글
[selenium]셀레니움 설치시 chrome driver를 못 찾을때 (0) | 2023.09.13 |
---|---|
[Chromedriver]unknown error: DevToolsActivePort file doesn't exist (0) | 2023.07.11 |
zipfile.ZipFile로 압축해제시 폴더안에 있는 파일은 어떻게 가져오는지 (0) | 2023.03.14 |
[요즘 핫한]ChatGPT를 python에서 사용하는 방법 (0) | 2023.02.15 |
[Python]specified google ads api version "V{}" does not exist -Solved (0) | 2023.02.07 |