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 |