변수의 범위는 변수가 유효할 수 있는 영역을 의미합니다. 왜냐하면 우리가 함수를 사용할 때 일부 변수는 메인 프로그램에서 정의되고 일부는 호출된 함수에서 정의되기 때문입니다. 변수가 있으면 예외가 발생합니다. 지역변수와 전역변수를 소개하겠습니다.
지역 변수는 이름에서 알 수 있듯이 지역 영역에서 작동하는 변수입니다. 함수에 변수가 정의되어 있으면 함수 내부의 변수가 함수 외부에서 사용되면 예외가 발생합니다. .
다음 예를 살펴보십시오.
deftest():data='지역 변수'print('함수 내부의 출력 데이터:',data)test()print('메인 프로그램의 출력 데이터:',data)
출력은 다음과 같습니다
함수 내부의 데이터 출력은 다음과 같습니다: 지역 변수 Traceback(mostrecentcalllast):FileC:/Users/Qingyan/PycharmProjects/untitled/venv/Include/ts.py,line6,in<module>print('기본 프로그램의 출력 데이터: ',데이터)이름오류:이름'데이터'가 정의되지 않았습니다.
변수 데이터는 함수 내부에서 정의되므로, 메인 프로그램에서 변수 데이터를 사용할 경우, 접근하고 있는 변수가 존재하지 않는다는 문제가 발생하게 되므로, 함수 내부에서 정의된 변수라는 점에 주의해야 합니다. 함수는 지역 변수입니다. 달리 선언하지 않는 한 함수 외부에서 사용할 수 없습니다.
또한 전역 변수는 전역적으로 작동하는 변수라는 의미로 이해할 수 있습니다. 일부 학생들은 자연스럽게 전역 변수가 기본 프로그램에서 정의된 변수라고 생각할 수도 있습니다. 여기서는 전역 변수도 작동할 수 있습니다. 전역 변수를 사용하는 두 가지 방법:
기본 프로그램에서 정의하는 변수의 범위는 전역이며 정의된 함수에서 이러한 변수를 직접 사용할 수도 있습니다.
data='전역 변수 data'deftest():print('이것은 함수에서 작동하는 전역 변수입니다:',data)test()print('이것은 함수 외부에서 작동하는 전역 변수입니다:',data)
출력 결과:
이것은 함수 내에서 작동하는 전역 변수입니다: 전역 변수 데이터 이것은 함수 외부에서 작동하는 전역 변수입니다: 전역 변수 데이터
이 방법은 우리가 일반적으로 사용하는 전역 변수입니다. 메인 프로그램에서 정의한 변수는 함수 내에서 직접 사용할 수 있습니다.
함수 내에서 정의한 변수는 전역 변수로 프로그래밍할 수도 있습니다. 이때 global 키워드를 사용해야 합니다.
먼저, 전역 변수와 지역 변수의 이름이 같을 때 어떤 일이 일어나는지 살펴보겠습니다. 다음 예를 살펴보세요.
data='여기에 전역 변수 data가 있습니다'print(data)deftest():data='여기에 지역 변수 data가 있습니다'print(data)test()print('전역 변수 data를 다시 확인하세요:',data)
출력은 다음과 같습니다
여기에 전역 변수 데이터가 있습니다. 여기에 지역 변수 데이터가 있습니다. 전역 변수 데이터를 다시 확인하세요. 여기에 전역 변수 데이터가 있습니다.
이 예를 보면, 글로벌 변수와 로컬 변수의 이름이 같으면 글로벌 변수의 내용에는 영향을 주지 않지만, 함수에서 글로벌 변수의 값을 수정하고 싶다면 이렇게 해야 한다는 것을 알 수 있습니다. global 키워드를 사용해야 합니다.
다음 예를 다시 살펴보세요.
data='여기에 전역 변수 data가 있습니다'print(data)deftest():globaldatadata='여기에 지역 변수 data가 있습니다'print(data)test()print('전역 변수 data를 다시 확인하세요:',data)
출력은 다음과 같습니다
여기에 전역 변수 데이터가 있습니다. 여기에 지역 변수 데이터가 있습니다. 전역 변수 데이터는 다음과 같습니다. 여기에 지역 변수 데이터가 있습니다.
global 키워드를 통해 local 선언은 global이 전역 변수임을 함수에 알려줍니다. 수정 후 global 키워드는 변수를 전역 변수로 만들 수 있습니다.
전역적으로 선언된 변수가 없는 경우 전역 키워드를 사용하여 변수를 전역 변수로 직접 선언할 수도 있습니다. 그러면 함수에서 정의한 변수를 기본 프로그램에서도 사용할 수 있습니다.
deftest():globaldatadata='이것은 로컬에서 생성된 변수 데이터입니다.'print('이것은 함수의 출력입니다:',data)test()print('이것은 기본 프로그램의 출력입니다:',data)
출력은 다음과 같습니다
이것은 함수의 출력입니다. 이것은 로컬에서 생성된 변수 데이터입니다. 이것은 메인 프로그램의 출력입니다. 이것은 로컬에서 생성된 변수 데이터입니다.
위의 예를 통해 전역 변수를 제어하는 데 있어 전역 키워드의 역할을 이해할 수 있습니다. 또한, 프로그램을 작성할 때 전역 변수와 지역 변수의 이름이 동일하지 않도록 주의해야 합니다. 영역 간의 상호 작용에 영향을 미칩니다. 이번 섹션은 여기까지입니다. 다음 섹션에서는 익명 함수에 대해 알아보겠습니다.