def outer_function(outer_arg):
# 외부 함수
def inner_function(inner_arg):
# 내부 함수 - 스코프가 외부함수 내로 제한됨
return inner_arg * 2
return inner_function(outer_arg)
result_1 = outer_function(5)
# result_2 = inner_function(5) # ⚠️ 오류
pass
def outer_function():
in_outer = 1
def inner_function():
in_inner = 2
print(in_outer)
print(in_inner)
inner_function()
print(in_outer)
# print(in_inner) # ⚠️
outer_function()
# print(in_outer) # ⚠️
# print(in_inner) # ⚠️
💡 for
문의 경우는 스코프 적용이 다름
for i in range(3):
for j in range(3):
print(f"안쪽 {i} {j}")
print(f"중간 {i} {j}")
print(f"바깥 {i} {j}")
<aside> ❓ 아래의 파이썬 코드에서 함수와는 달리 스코프 관련 오류가 발생하지 않는 이유가 뭐야?
</aside>
def outer_scope():
king = "사자"
lord = "늑대"
print(f"바깥: {king} {lord}")
def middle_scope():
king = "여우"
print(f"중간: {king} {lord}")
def inner_scope():
king = "고양이"
lord = "쥐"
print(f"안쪽: {king} {lord}")
inner_scope()
middle_scope()
outer_scope()
📌 추가사항