본문 바로가기
[파이썬]/변수

[파이썬] 변수의 종류

by sung min_Kim 2023. 11. 10.
변수의 종류


로컬 변수, 전역 변수, 참조 변수, 지역 변수


· 변수의 종류

 

  • 로컬 변수 : 함수 내에서만 정의되고, 해당 함수 내에서만 사용하는 변수이다.

  • 전역 변수 : 함수 외부에서 정의되며, 어디에서나 참조하고 수정할 수 있는 변수이다.

  • 참조 변수 : 파이썬에서의 모든 변수는 참조 변수이다. 변수를 할당하면 실제 값을 가지는 게 아니라 데이터가 저장된 메모리 위치를 참조하게 된다.

  • 지역 변수 : 중첩된 함수에서 상위 함수의 변수를 변경할 수 있게 해주는 변수이다. nonlocal 키워드를 사용하여 선언한다.

 



 각 각의 예시를 순서대로 살펴보자.


  • 로컬 변수
def function():
    local_var = "I'm a local variable"
    print(local_var)

function() # I'm a local variable 출력

 
local_var 변수는 function 함수 내의 로컬 변수이다. 해당 함수 내에서만 사용할 수 있으며, 함수가 종료되면 더 이상 참조할 수 없다.


  • 전역 변수
global_var = "I'm a global variable"

def function():
    print(global_var)

function() # I'm a global variable 출력


 함수 외부에서 선언된 global_var 변수를 함수 내에서 참조하여 사용하였다. 
 수정하기 위해서는 'globar' 키워드를 사용해야 한다.

global_var = "I'm a global variable"

def function():
    global global_var
    global_var = "I've been changed!"
    print(global_var)

function() # I've been changed! 출력


 globar 키워드를 사용하여 전역 변수를 함수 내에서 수정할 수 있는 상태로 만들었다. 이후, 원래의 문구를 수정하여 출력하였다.


  • 참조 변수
a = [1, 2, 3]
b = a
b.append(4)

print(a) # [1, 2, 3, 4] 출력


 변수 a를 변수 b에 할당하여, 변수 a의 [1, 2, 3] 데이터가 저장된 메모리의 위치를 참조하는 변수 b를 생성하였다.
 변수 b는 변수 a를 참조하므로, 변수 b를 변경하면 변수 a의 값 또한 변경된다.


  • 지역 변수
def a_function():
    nonlocal_var = "I'm a nonlocal variable"
    
    def b_function():
        nonlocal nonlocal_var
        nonlocal_var = "I'm changed"
    
    b_function()
    print(nonlocal_var)

a_function()   # I'm changed 출력


 nonlocal_var  변수는 상위 a 함수 내의 로컬 변수이지만, 하위 b 함수 내에 nonlocal 키워드를 사용하여 상위 함수의 nonlocal_var 변수를 참조하고 수정할 수 있는 상태가 된다.



 

이처럼 파이썬에서는 변수의 유효 범위에 따라 로컬 변수, 전역 변수, 지역 변수를 사용하며,

모든 변수는 기본적으로 참조 변수의 성질을 가진다.

'[파이썬] > 변수' 카테고리의 다른 글

[파이썬] 변수  (0) 2023.11.03