μ΄μ μ νμ΄μ¬ ν΄λ‘μ μ λν΄μ μ 리νμμ§λ§ λ―Έν‘ν΄μ μμΈνκ² λ€μ μ 리ν΄λ³Έλ€.
ν΄λ‘μ μ λν΄μ μμ보기μ μ νμ΄μ¬μμ λ³μμ μ¬μ©λ²μλ₯Ό μμ보μ.
ν¨μλ₯Ό ν¬ν¨νμ¬ μ€ν¬λ¦½νΈ μ 체μμ μ κ·Ό ν μ μλ λ³μλ₯Ό μ μ λ³μ(global variable)λΌκ³ νλ€.
k = 5 # μ μ λ³μ
def println():
print(k) # μ μ λ³μ μΆλ ₯
println() # ν¨μ νΈμΆ
print(k) # μ μ λ³μ νλ ₯
κ²°κ³Ό:
5
5
μ§μ λ³μλ λ³μλ₯Ό λ§λ ν¨μ μμμλ§ μ κ·Ό ν μ μκ³ ν¨μ λ°κΉ₯μμλ μ κ·Ό ν μ μλ€.
def println():
k = 5 # μ§μ λ³μ
print(k) # ν¨μμμμ μ§μ λ³μ μΆλ ₯
println()
print(x)
κ²°κ³Ό:
5
μλ¬
k = 5 # μ μ λ³μ
def println():
k = 10 # kλ printlnμ μ§μ λ³μ
print(k) # printlnμ μ§μ λ³μ μΆλ ₯
println()
print(k) # μ μλ³μ μΆλ ₯
κ²°κ³Ό:
10
5
ν¨μ μμμ kκ°μ 10μΌλ‘ λ³κ²½νμ§λ§ μ μ λ³μ kμ κ°μ λ³νμ§ μμλ€.
printlnν¨μ μμ kλ μ§μ λ³μμ΄λ€. μ μ λ³μ kμ μ΄λ¦λ§ κ°μ λΏ μλ‘ λ€μ λ³μμ΄λ€.
ν¨μ μμμ μ μ λ³μλ₯Ό λ³κ²½νκ³ μ νλ©΄global ν€μλλ₯Ό μ¬μ©ν΄μΌ νλ€.
k = 5 # μ μ λ³μ
def println():
global k # μ μ λ³μ kλ₯Ό μ¬μ©νκ² λ€κ³ μ€μ
k = 10 # kλ μ μ λ³μ
print(k) # μ μ λ³μ μΆλ ₯
println()
print(k) # μ μ λ³μ μΆλ ₯
κ²°κ³Ό:
10
10
def print_hi():
hi = 'μλ
μΈμμ!'
def print_himessage():
print(hi)
print_himessage()
print_hi()
κ²°κ³Ό:
μλ
μΈμμ!
print_hiν¨μ μμμ print_himessageν¨μλ₯Ό λ§λ€μλ€.
κ·Έλ¦¬κ³ print_hiν¨μ μμμ print_himessageν¨μλ₯Ό νΈμΆνλ€.
μ΄κ±Έ μ€ν μν¬λ €λ©΄ λ°κΉ₯μ ν¨μ print_hiν¨μλ₯Ό νΈμΆν΄μΌνλ€.
def a():
x = 5
def b():
x = 10
b()
print(x)
a()
κ²°κ³Ό:
5
10μ΄ λμμΌ ν κ² κ°μλ° 5κ° λμλ€. μλνλ©΄ κ²μΌλ‘ 보기μλ λ°κΉ₯μͺ½ ν¨μaμ μ§μ λ³μ xλ₯Ό λ³κ²½νλ κ² κ°μ§λ§, μ€μ λ‘λ μμͺ½ ν¨μ bμμ μ΄λ¦μ΄ κ°μ μ§μ λ³μ xλ₯Ό μλ‘ λ§λ€κ² λλ€.
μ¦, νμ΄μ¬μμλ ν¨μμμ λ³μλ₯Ό λ§λ€λ©΄ νμ νμ¬ ν¨μμ μ§μ λ³μκ° λλ€.
νμ¬ ν¨μ μμμ λ°κΉ μͺ½μ μ§μ λ³μλ₯Ό λ³κ²½νλ €λ©΄ nonlocalν€μλλ₯Ό μ¬μ©ν΄μΌνλ€.
def a():
x = 5
def b():
nonlocal x. # νμ¬ ν¨μμ λ°κΉ₯μͺ½μ μλ μ§μ λ³μ μ¬μ©
x = 10
b()
print(x)
a()
κ²°κ³Ό:
10
def calc():
a = 3
b = 5
def mul_add(x):
return a * x + b # ν¨μ λ°κΉ₯μͺ½μ μλ μ§μ λ³μ a,bλ₯Ό μ¬μ©νμ¬ κ³μ°
return mul_add # mul_add ν¨μλ₯Ό λ°ν
c = calc()
print(c(1),c(2),c(3),c(4),c(5))
κ²°κ³Ό:
8 11 14 17 20
ν¨μ mul_addλ₯Ό λ§λ λ€μλ μ΄ ν¨μλ₯Ό λ°λ‘ νΈμΆνμ§ μκ³ returnμΌλ‘ ν¨μ μ체λ₯Ό λ°ννλ€. (λ°νν λ ν¨μ μ΄λ¦λ§ λ°νν΄μΌνλ€.)
calcν¨μλ₯Ό νΈμΆν λ€ λ°νκ°μ cμ μ μ₯νλ€.
calcμμ mul_addλ₯Ό λ°ννμΌλ―λ‘ cμλ ν¨μ mul_addκ° λ€μ΄κ°λ€.
κ·Έλ¦¬κ³ cμ μ«μλ₯Ό λ£μ΄μ νΈμΆνλ©΄ a * x + bκ³μ°μμ λ°λΌ κ°μ΄ μΆλ ₯ λλ€.