파이썬 범위
Python Scope
파이썬 범위에 대해 알아보기 위해 아래 코드를 보고, 함수 내에 있는 변수 variable 의 값은 무엇이고 함수 밖에 있는 변수 variable의 값은 무엇이로 나올지 생각해 보겠습니다.
variable = 1
def increase_variable():
variable = 3
print(f"함수 내에 있는 변수: {variable}")
increase_variable()
print(f"함수 밖에 있는 변수: {variable}")
생각해 보셨나요?
.
.
.
.
.
함수 내 변수: 3
함수 밖의 변수: 1
이런 결과가 나옵니다.
Global
그러면 함수 내의 변수도 함수 밖에 변수를 그대로 이용하기 위해서는 아래 코드 처럼, global 을 함수내에 써주면 됩니다.
variable = 1
def increase_variable():
global variable
print(f"함수 내에 있는 변수: {variable")
increase_variable()
print(f"함수 밖에 있는 변수: {variable")
함수 내 변수: 1
함수 밖의 변수: 1
Global 쓰지 않기
global 을 쓰지 않고 함수내에서 바깥 변수를 적용 하려면 return 을 이용합니다.
variable = 1
def increase_variable():
return variable + 3
print(increase_variable())
print(f"함수 밖에 있는 변수: {variable}")
위와 같은 경우 increase_variable() 이라는 함수에는 변수 + 3 의 값인 4이 값이 저장되어 있습니다.
그래서 print(increase_variable()) 을 하면 4 라는 값이 나옵니다.
물론 여전히 print(f"함수 밖에 있는 변수: {variable}") 의 variable 값은 1입니다.
Remember that in Python there is no block scope. Inside a if/else/for/while code block is the same as outside it.
파이썬에는 C언어와 같은 block scope 이 없습니다.
if/else/for/while 와 그 바깥 범위는 같습니다.
그러면 Global Scope 은 절대 쓰면 안될까?
변하지 않는 값, Constant(상수)를 사용하기에는 Global Scope가 좋습니다.
특정,
URL = "http://thinkingcells.tistory.com"
Pi = 3.1415
등 변하지 않을 값을 그 때 그 때 가져다 쓰기에 유용합니다.
'Python' 카테고리의 다른 글
코딩 인터뷰 계획 - 무엇을 어떻게 공부할까 [코딩 인터뷰 공부] (0) | 2022.07.07 |
---|---|
파이썬 python 실행 과정을 단계별로 보여주는 사이트 (0) | 2022.06.29 |
Leetcode 189. Rotate Array Python (0) | 2022.06.16 |
Leetcode 977. Squares of a Sorted Array - Python 리트코드 투 포인터 파이썬 (0) | 2022.06.14 |
Leetcode 704. Binary Search - Python 리트코드 비이너리 서치 파이썬 (0) | 2022.06.09 |