ν·κ°λ¦¬λ κ²κ³Ό λμ€μ λ€μ ν λ² νμΈν΄μΌ ν κ°λ μ μ μ£Όκ΄μ λ°λΌ μ ννκ³ κΈ°λ‘ν κΈμ΄κΈ° λλ¬Έμ νμ΄μ¬μμ νμ©λλ κ°λ μ΄ λ€ ν¬ν¨λκ² μλλΌλ κ²! μμμ£ΌμΈμ..
def func(x):
return x + 2
x
λ 맀κ°λ³μ(parameter)λ³μ
λΌκ³ μκ°νλ©΄ λλ€.func(2)
2
λ (μ λ¬)μΈμ(argument)μ
λ ₯κ°
μ΄λΌκ³ μκ°νλ©΄ λλ€.ν¨μλ μ λ ₯κ°(input)μΌλ‘
μΈμ(argument)
λ₯Ό λκ²¨μ€ μ μμ΅λλ€.
def cylinder(r, h):
return r**2 * 3.14 * h
cylinder(5,2)
ν¨μκ° νΈμΆλ λ, μΈμλ₯Ό μ§μ νμ§ μμλ κΈ°λ³Έ κ°μ μ€μ ν μ μμ΅λλ€. == λν΄νΈ
def greeting(name='μ΅λͺ
'):
return f'{name}, μλ
?'
greeting()
λ¨, κΈ°λ³Έ μΈμκ°(Default Argument Value)μ κ°μ§λ μΈμ λ€μμ κΈ°λ³Έ κ°μ΄ μλ μΈμλ₯Ό μ¬μ©ν μλ μμ΅λλ€.
# μ€λ₯
def greeting(name='μ΅λͺ
',age):
...
# μμ
def greeting(age,name='μ΅λͺ
'):
...
ν€μλ μΈμλ μ§μ λ³μμ μ΄λ¦μΌλ‘ νΉμ μΈμλ₯Ό μ λ¬ν μ μμ΅λλ€.
def greeting(age, name='john'):
return f'{name}μ {age}μ΄μ
λλ€.'
greeting(name='μ² μ', age=24)
greeting(24, name='μ² μ')
λ¨ μλμ κ°μ΄ ν€μλμΈμ
λ₯Ό νμ©ν μ΄νμ μμΉμΈμ
λ₯Ό μ¬μ©ν μ μμ΅λλ€.
#μ€λ₯
greeting(age=24, 'μ² μ')
κ°μκ° μ ν΄μ§μ§ μμ μμμ μΈμλ₯Ό λ°κΈ° μν΄μλ κ°λ³ μΈμ 리μ€νΈ
*args
λ₯Ό νμ©ν©λλ€.κ°λ³ μΈμ 리μ€νΈλ
tuple
ννλ‘ μ²λ¦¬κ° λλ©°, 맀κ°λ³μμ*
λ‘ ννν©λλ€.
νμ©λ²
# 보ν΅, μ΄ κ°λ³ μΈμ 리μ€νΈλ 맀κ°λ³μ λͺ©λ‘μ λ§μ§λ§μ μ΅λλ€.
def func(a, b, *args):
μ ν΄μ§μ§ μμ ν€μλ μΈμλ€μ
dict
ννλ‘ μ²λ¦¬κ° λλ©°,**
λ‘ ννν©λλ€.보ν΅
kwagrs
λΌλ μ΄λ¦μ μ¬μ©νλ©°,**kwargs
λ₯Ό ν΅ν΄ μΈμλ₯Ό λ°μ μ²λ¦¬ν μ μμ΅λλ€.
νμ©λ²
def func(**kwargs):
ν¨μλ μ½λ λ΄λΆμ 곡κ°(scope)λ₯Ό μμ±ν©λλ€. ν¨μλ‘ μμ±λ 곡κ°μ
μ§μμ€ν¬ν¬(local scope)
λΌκ³ λΆλ¦¬λ©°, κ·Έ μΈμ 곡κ°μΈμ μ μ€ν¬ν¬(global scope)
μ ꡬλΆλ©λλ€.
global variable
): μ μ μ€μ½νμ μ μλ λ³μlocal variable
): λ‘컬 μ€μ½νμ μ μλ λ³μνμ΄μ¬μμ μ¬μ©λλ μ΄λ¦(μλ³μ)λ€μ μ΄λ¦κ³΅κ°(namespace)μ μ μ₯λμ΄ μμ΅λλ€.
μ΄κ²μ,
LEGB Rule
μ΄λΌκ³ λΆλ₯΄λ©°, μλμ κ°μ μμλ‘ μ΄λ¦μ μ°Ύμλκ°λλ€.
L
ocal scope: μ μλ ν¨μ
E
nclosed scope: μμ ν¨μ
G
lobal scope: ν¨μ λ°μ λ³μ νΉμ importλ λͺ¨λ
B
uilt-in scope: νμ΄μ¬μμ λ΄μ₯λμ΄ μλ ν¨μ λλ μμ±
λ³μμ μ΄λ¦μ κ°μμ μλͺ
μ£ΌκΈ°(lifecycle)
κ° μμ΅λλ€.
λΉνΈμΈ μ€μ½ν(built-in scope)
: νμ΄μ¬μ΄ μ€νλ μ΄νλΆν° μμν μ μ§
μ μ μ€μ½ν(global scope)
: λͺ¨λμ΄ νΈμΆλ μμ μ΄ν νΉμ μ΄λ¦ μ μΈλ μ΄νλΆν° μΈν°ν리ν°κ° λλ λ κΉμ§ μ μ§
μ§μ(ν¨μ) μ€μ½ν(local scope)
: ν¨μκ° νΈμΆλ λ μμ±λκ³ , ν¨μκ° κ° μ’
λ£λ λκΉμ§ μ μ§ (ν¨μ λ΄μμ μ²λ¦¬λμ§ μλ μμΈλ₯Ό μΌμΌν¬ λ μμ λ¨)