IT&Computer

파이썬 변수의 범위 Scope와 상수

Seeker시커 2023. 10. 24. 21:44
반응형

변수를 어디에 정의하냐에 따라 변수를 사용할 수 있는 범위가 달라진다. 변수의 scope 즉 적용 범위를 이해해야 어디에서 변수를 정의하고, 어디서 사용할 수 있을지 정확히 알고 실수를 줄일 수 있다.

또한 프로그래밍에서 정의한 상수에 대해서도 알아보자.

파이썬 변수의 범위 Scope와 상수

 

1. 변수의 scope(범위)

 

1.1 Local 로컬 변수

아래와 같이 함수 내에서 정의한 변수는 함수 안에서만 작동한다.

test 함수 내에서 정의한 x가 test() 함수를 불러왔을 때 잘 사용되었다. 하지만 함수 안에서 정의한 변수는 함수 밖에서는 사용할 수 없다.

test() 함수 내에서 정의한 변수를 함수 밖에서 사용하니 에러가 발생했다.

함수 내에서 정의한 변수를 로컬 변수라 부르고, 함수 내에서만 사용할 수 있다. 7번 라인의 print(x)는 함수 바깥이므로 로컬 변수가 적용되지 않기 때문에, x가 정의되지 않았다는 오류가 발생했다.

 

1.2 Global 글로벌 변수

함수 밖에서 정의한 변수는 함수의 바깥과 안, 모두 적용이 가능하다. 이를 글로벌 함수라고 부른다.

위 코드에서 x = 3이 test()함수 밖에서 정의되었지만, 글로벌 변수이기 때문에 함수 안에서도 작동하고, 밖에서도 작동한다는 것을 알 수 있다.

 

1.3 로컬 변수와 글로벌 변수의 동시 사용

글로벌 변수와 로컬 변수가 같은 이름으로 두 번 정의된다면, 해당 로컬 변수가 정의된 함수 안에서는 로컬 변수가 적용되고, 그 외에는 글로벌 변수가 적용된다.

위 코드에서 글로별 변수로 x = 3, test()의 로컬 변수로 x = 2가 정의되었다. test()의 결과 값으로는 2, print(x)의 결과 값으로는 3이 나온 것을 알 수 있다. 로컬 변수가 나중에 정의되었지만, 글로별 변수 x의 값이 3에서 2로 변하지는 않는다.

test1()에서 정의된 로컬 변수는 test2()에는 적용되지 않고, test2()에 정의된 x가 없으므로 글로벌 변수 x의 값을 가져와서 출력했다.

 

1.4 파라미터도 로컬변수

파라미터도 해당 함수 내에서만 사용되는 로컬 변수이다.

글로벌 변수로 x = 3이 정의되어 있지만, plus() 함수의 파라미터에 x = 4로 로컬 변수가 정의되었으므로 plus()함수에서는 로컬 변수를 사용한다.

파라미터로 로컬 변수 x를 정의하지 않으면 글로벌 변수 x = 3의 값을 사용한다.

 

 

2. 상수

아래와 같이 원의 둘레를 계산하는 함수를 사용한다고 하자.

이 프로그램에서 변수 PI는 프로그램 내내 변하지 않는 값이다. 이런 값을 상수라고 한다.

변하지 않는 변수, 상수를 선언할 때는 대문자를 사용한다.

실제 코드에서 대문자든 소문자든 프로그램의 기능에 영향은 전혀 없지만, 프로그램 작성자나 협업자가 해당 변수가 상수라는 것을 쉽게 알기 위해서 대문자를 사용한다. 또한 대문자로 상수를 표기함으로써 상수를 변경하는 실수를 줄일 수 있다.

이는 코드의 작동과 무관한 개발자들 간의 약속이다.

 

파이썬 변수의 범위 Scope와 상수

 

《이 포스트는 코드잇 강의 내용을 기반으로 작성되었으며, 개발과 프로그래밍에 대해서 거의 알지 못하는 제가 거의 알지 못하는 초보자를 위해 쓴 글임을 밝힙니다.》

반응형