νμ΄μ¬μμ λ³μμ λ²μ(scope)λ ν΄λΉ λ³μκ° νλ‘κ·Έλ¨ λ΄μμ μ°Έμ‘°λκ³ λ³κ²½λ μ μλ μμμ μλ―Ένλ€. νμ΄μ¬μ λ³μ λ²μλ ν¬κ² λ€ κ°μ§λ‘ λΆλ₯λλ€.

Local Scopeλ λ³μκ° ν¨μ λ΄μμ μ μλ λ ν΄λΉ ν¨μ λ΄λΆλ₯Ό μλ―Ένλ€.
def local_example():
local_var = "λ‘컬 λ³μ"
print(local_var)
local_example()
> λ‘컬 λ³μ
print(local_var)
> NameError: name 'local_var' is not defined
Enclosing Scopeλ λ΄λΆ ν¨μμμ μΈλΆ ν¨μμ λ³μλ₯Ό μ°Έμ‘°ν λ ν΄λΉ μΈλΆ ν¨μ λ²μλ₯Ό μλ―Ένλ€.
def outer_function():
enclosing_var = "λλ¬μΌ λ²μ λ³μ"
def inner_function():
print(enclosing_var)
inner_function()
outer_function()
> λλ¬μΌ λ²μ λ³μ
Global λ²μλ λ³μκ° μ΅μμ μμ€μμ μ μλ λ μ 체 νμΌ λ΄μμ ν΄λΉ λ³μλ₯Ό μλ―Ένλ€.
global_var = 'κΈλ‘λ² λ³μ'
def test_global():
print(global_var)
test_global()
> κΈλ‘λ² λ³μ
# μ μλ³μμ μ§μλ³μ
global_var = 10 # μ μλ³μ
def test_global():
global_var = 20 # μ§μλ³μ
print(global_var)
test_global()
print(global_var)
> 20
> 10
# μ μλ³μμ μ§μλ³μ
global_var = 10 # μ μλ³μ
def test_global():
global global_var # μ μλ³μλ₯Ό λ΄μ₯ ν¨μ λ΄μμ μ¬μ©
global_var = 20 # μ μλ³μλ₯Ό μμ
print(global_var)
test_global()
print(global_var)
> 20
> 20
λΉνΈμΈ μμμ νμ΄μ¬μ λ΄μ₯ν¨μμ λͺ¨λλ€μ΄ μνλ λ²μμ΄λ€. print(), len()κ³Ό κ°μ ν¨μλ€μ΄ ν΄λΉλλ€.
print(print)
print(len)
> <built-in function print>
> <built-in function len>
print(aaa)
> NameError: name 'aaa' is not defined
μ§μ λ²μμ λμΌν μ΄λ¦μ λ³μκ° μμΌλ©΄ νμ΄μ¬μ λλ¬μΌ λ²μλ₯Ό νμΈνκ³ , κ·Έ λ€μμΌλ‘ μ μ λ²μ, λ§μ§λ§μΌλ‘ λ΄μ₯ λ²μλ₯Ό νμΈνλ€.
μ΄λ κ² λ³μμ λ²μλ₯Ό μ΄ν΄νκ³ κ΄λ¦¬νλ κ²μ μ½λμ κ°λ μ±κ³Ό μ μ§ λ³΄μμ±μ λμ΄κ³ , μκΈ°μΉ μμ μ€λ₯λ₯Ό λ°©μ§νλ λ° μ€μνλ€.