파이썬(Python)

함수 내에서 변수의 생존 범위

BlueNoa 2021. 6. 16. 01:29
728x90
반응형

· 함수 내 변수의 생존범위

변수는 작성하는 장소에 따라 생존하는 범위가 생기게 된다. 이는 변수의 참조 우선 순위와 관계가 있는데, 한정된 범위에서 사용되는 변수가 더 높은 우선 순위를 갖고 있다. 이해 하기 쉽게 표현하면 다음과 같다.

 

변수 참조의 우선 순위 : Local > Enclosing Function(함수 내) > Global(글로벌 변수) > Built-in(내장 변수)

 

 

<예시>

friend = '친구' # 전역 변수(작성중인 화면 내 모든 영역에서 사용 가능)
def fun1():
    name = '김시민'
    age = 26
    friend = '이순신' # 지역 변수(Enclosing Function, 블럭 내에서만 유효) 
    print(name, age, friend)

fun1() # 결과에서 '친구'라는 전역 변수의 값은 사라지고 지역 변수가 우선시 된 것을 알 수 있다.
print(name, age) # name과 age는 지역 변수이므로 블럭 외부에서 사용하려 하면 오류가 발생한다.
김시민 26 이순신

오류 내용 :    print(name, age)
NameError: name 'name' is not defined

 

<예시2>

a = 10; b = 20; c = 30
print("값 출력 : {}, {}, {}".format(a, b, c)) # 일반 적인 출력

def func2():
    a = 11
    b = 21
    
def func3():
    global c # 젼역 변수로 선언
    c = 40

func2()
func3()
print(a, b, c) # func3에서 c를 전역변수로 선언하고 값을 변경해줘서 최종적으로 바뀐 값이 나온다.
값 출력 : 10, 20, 30
10 20 40

 

 

 

728x90
반응형

'파이썬(Python)' 카테고리의 다른 글

파이썬 - 함수 추가 내용(2)  (0) 2022.12.14
파이썬 - 함수 추가 내용(1)  (1) 2022.10.25
파이썬 - 사용자 정의 함수  (0) 2021.06.15
파이썬 - 내장 함수  (0) 2021.06.14
정규 표현식(정규식) - 2  (0) 2021.06.13