파이썬 global 예제

여기서 일어나는 일은 파이썬이 함수 내의 어느 곳에서나 할당된 모든 이름이 명시적으로 달리 말하지 않는 한 해당 함수에 로컬이라고 가정한다는 것입니다. 이름에서만 읽는 것이고 이름이 로컬에 존재하지 않는 경우 포함된 범위(예: 모듈의 전역 범위)에서 이름을 찾아보십시오. Python 변수는 값을 저장하는 예약된 메모리 위치입니다. 즉, 파이썬 프로그램의 변수는 처리를 위해 컴퓨터에 데이터를 제공합니다. app.py 전역 변수를 수정하였고 출력에서 보았습니다. 인수는 파이썬에서 할당에 의해 전달된다는 것을 기억하십시오. 할당은 개체에 대한 참조를 생성하기 때문에 호출자와 호출 값의 인수 이름 사이에는 별칭이 없으므로 호출별 참조가 없습니다. 여러 가지 방법으로 원하는 효과를 얻을 수 있습니다. 같은 이름의 로컬 변수를 만들면 전역 변수가 가려집니다: myGlobal 이름에 42를 할당하면 파이썬은 같은 이름의 전역 변수를 그림자로 만드는 로컬 변수를 만듭니다.

해당 로컬은 범위를 벗어나 func1() 반환시 가비지 수집됩니다. 한편, func2()는 (수정되지 않은) 전역 이름 이외에는 아무것도 볼 수 없습니다. 이 네임스페이스 결정은 런타임이 아닌 컴파일 타임에 발생합니다 – 할당하기 전에 myGlobal inside func1()의 값을 읽으려면 파이썬이 이미 로컬 변수라고 결정했기 때문에 UnboundLocalError를 얻을 수 있습니다. 아직 연관된 가치가 있습니다. 그러나 `전역` 문을 사용하면 Python에게 로컬로 할당하는 대신 이름을 다른 곳에서 찾아야 한다고 말합니다. 표준 라이브러리가 무언가를 수행하기 위한 기본 을 제공하는 경우 어떤 대안보다 빠를 가능성이 높습니다(보장되지는 않지만). 이는 기본 제공 및 일부 확장 유형과 같이 C로 작성된 기본 형식의 경우 이중으로 해당됩니다. 예를 들어 list.sort() 기본 제공 메서드 또는 관련 sorted() 함수를 사용하여 정렬을 수행해야 합니다(예: 분류 방법 TO 를 참조). 쉼표는 파이썬의 연산자가 아닙니다.

이 세션 고려 사항: 수행 중인 작업을 정확히 알고 있고 그렇게 할 만한 이유가 없는 한 전역과 동일한 이름의 로컬 변수를 사용하지 않아야 합니다. 나는 아직 그런 이유를 만나지 못했다. 활성 코드(가져온 값에서 초기화된 전역 포함). 함수에서 전역 변수를 사용하는 문제를 해결하기 위해 Python은 글로벌 키워드를 제공합니다. 이 키워드를 사용하면 변수의 범위를 지정할 수 있습니다. 따라서 전역 키워드를 사용하여 함수에서 변수를 선언하면 이 변수가 전역 변수를 참조합니다. 헥사데피말은 그만큼 쉽습니다. 단순히 0으로 육각형 수 앞에, 그리고 더 낮은 또는 대문자 “x”.