Inner Function λ΄μ₯ ν¨μ, λ΄λΆ ν¨μ
λ΄λΆ ν¨μλΌκ³ λΆλ¦¬λ inner functionμ ν¨μ μμ ν¨μμ΄λ€.
def ν¨μλͺ
1():
def ν¨μλͺ
2():
statement
μμ κ°μ νμμΌλ‘ μ¬μ©λλ©° λ³μμ μμ‘΄ κΈ°νμ μ μν΄μΌ νλ€.
λ€μ λ§ν΄, λ€μ¬μ°κΈ°λ‘ λ¬Άμ¬μλ μμ€λΌλ¦¬ μλ‘ μμ곡μ κ° κ°λ₯ν μ§μλ³μμ νΉμ±μ λ§ νλ κ²μ΄λ€.
def outer(a, b):
sum = a + b
def inner(sum, d):
return sum + d
return inner(sum, a)
print(outer(1,2))
>>>
4
λ΄λΆ ν¨μμ μ°μ
λ΄μ₯ ν¨μλ 루νλ μ½λ μ€λ³΅μ νΌνκΈ° μν΄μ λλ λ€λ₯Έ ν¨μ λ΄μ μ΄λ€ 볡μ‘ν μμ μ ν λ² μ΄μ μνν λ μ μ©νκ² μ°μΈλ€.
Closure ν΄λ‘μ
ν΄λ‘μ λ λ€λ₯Έ ν¨μμ μν΄ λμ μΌλ‘ μμ±λλ ν¨μμ΄λ€. λν λ°κΉ₯ ν¨μλ‘λΆν° μμ±λ λ³μμ κ°μ λ³κ²½νκ³ , μ μ₯ν μ μλ€.
μκΉμ κ°μ μμ λ₯Ό μ°Έκ³ νλ©΄
def outer(a, b):
sum = a + b
def inner(sum, d):
return sum + d
return inner(sum, a)
print(outer(1,2))
>>>
4
μμ μ°λ¦¬λ def inner(sum, d):
μ sum
μ 맀κ°λ³μλ‘ μ£Όμμ§λ§ ν΄λ‘μ λ₯Ό μ¬μ©νλ€λ©΄ λ°κΉ₯ ν¨μμ λ³μλ₯Ό μ¬μ©ν μ μκΈ° λλ¬Έμ 맀κ°λ³μλ‘ μ§μ μ νμ§ μμλ κ°λ₯νλ€.
def outer(a, b):
sum = a + b
def inner(d):
return sum + d
return inner(a)
print(outer(1,2))
>>>
4
λ°λ‘ μ΄λ° μμΌλ‘ λ§μ΄λ€!
μ΅λͺ
ν¨μ : lambda()
μ΅λͺ ν¨μλ annonymous functionμΌλ‘ λ¨μΌλ¬ΈμΌλ‘ νν κ°λ₯νλ€.
λλ€μ μ¬μ© λ°©λ²
lambda <μΈμ> : <μΈμ νμ© μν μ½λ>
lambda <μΈμ> : <μΈμ νμ© μν μ½λ>(<μΈμ>)
νμ 리μ€νΈλ₯Ό λ°κ³ νμλ€μ μ΄λ¦ 첫κΈμλ₯Ό λλ¬Έμλ‘ νννλ μμ€μ½λ
def info_list(lists, func):
for list in lists:
print(func(list))
def cptlz(word):
return word.capitalize()
student = ['jang', 'hong', 'heo', 'su']
info_list(student, cptlz)
cptlz
ν¨μλ₯Ό lambda
λ‘ κ°λ¨νκ² νν ν μ μλ€.
def info_list(lists, func):
for list in lists:
print(func(list))
student = ['jang', 'hong', 'heo', 'su']
info_list(student, lambda lmd_list: lmd_list.capitalize())
λλ€λ
- κ°λ ₯νκ³
- κ°κ²°νλ©°
- μ ννλ€
λλ€μλ λ§μ°¬κ°μ§λ‘ λ€λ₯Έ ν¨μμ νΉμ§(μμΉ μΈμ, 맀κ°λ³μ κΈ°λ³Έκ°)λ±μ μ μ©ν μ μλ€.
map() ν¨μμ λλ€λ‘ λ κ°κ²°νκ²
map()
μ μ§μ λ 리μ€νΈμ μμλ₯Ό μ§μ λ ν¨μλ‘ μ²λ¦¬ν΄μ£Όλ ν¨μλΌκ³ νλ€.
μ¬μ©λ²μ map(ν¨μλͺ
, 리μ€νΈ)
νμμΌλ‘ νλ©΄ 리μ€νΈμ μΈλ±μ€ κ°μ λͺ¨λ ν΄λΉ ν¨μλͺ
μΌλ‘ μ²λ¦¬ν¨μ λ»νλ€.
myList = [1, 2, 3, 4, 5]
def add_10(num):
result = num + 10
return result
for i in range(len(myList)):
myList[i] = add_10(myList[i])
μμ κ°μ μ½λλ₯Ό mapκ³Ό λλ€λ₯Ό μ΄μ©νλ©΄ μλμ κ°μ΄ κ°κ²°νκ² μ¬μ©ν μ μλ€.
myList = [1, 2, 3, 4, 5]
add10 = lambda num : num + 10
myList = list(map(add10, myList))
μ΄ μ½λλ μμ λ€μκ³Ό κ°μ΄ λ³νν μ μλ€.
myList = list(map(lambda num : num + 10, myList))
'π€·πΌββοΈ Etc... > - C, C++, Python, Android' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Python μμΈλ₯Ό λ€λ€λ³΄μ. (0) | 2019.12.07 |
---|---|
Python Generator & Decorator νμ΄μ¬ μ λλ μ΄ν°μ λ°μ»€λ μ΄ν°λ? (0) | 2019.12.07 |
Python νμ΄μ¬μμμ ν¨μ (0) | 2019.12.07 |
Python ν¨μ(Function)μ μ¬μ©λ²κ³Ό λΆλ₯ (0) | 2019.12.07 |
Python μ»΄ν리ν¨μ comprehension (0) | 2019.12.06 |
λκΈ