λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
  • μž₯원읡 κΈ°μˆ λΈ”λ‘œκ·Έ
🀷🏼‍♀️ Etc.../- C, C++, Python, Android

Python νŒŒμ΄μ¬μ—μ„œμ˜ ν•¨μˆ˜

by Wonit 2019. 12. 7.

λ°”λ‘œ μ „ μ‹œκ°„μ— ν•¨μˆ˜μ— κ΄€ν•œ μ—¬λŸ¬κ°€μ§€ 고찰을 ν•΄λ³΄μ•˜λŠ”λ°, 이젠 ν•¨μˆ˜μ˜ μ“°μž„κ³Ό 파이썬이 μƒκ°ν•˜λŠ” ν•¨μˆ˜μ— λŒ€ν•΄ 이야기 ν•΄λ³΄μž.

ν•¨μˆ˜

νŒŒμ΄μ¬μ—μ„œ ν•¨μˆ˜λŠ” 쒋은 취급을 λ°›λŠ”λ‹€(정말 많이 쓰여진닀.) νŒŒμ΄μ¬μ€ 크게 3κ°€μ§€λ‘œ μ‚¬μš©λ  수 μžˆλŠ”λ°,

  • λ³€μˆ˜μ— ν•¨μˆ˜λ₯Ό ν• λ‹Ή
  • λ‹€λ₯Έ ν•¨μˆ˜μ—μ„œ 인자둜 μ“°μž„
  • ν•¨μˆ˜μ—μ„œ ν•¨μˆ˜λ₯Ό λ°˜ν™˜

λ³€μˆ˜μ— ν•¨μˆ˜λ₯Ό ν• λ‹Ή

def print_args():

    print('hello world')

print_func = print_args()

print(print_func)
이런 μ‹μœΌλ‘œ print_funcλΌλŠ” λ³€μˆ˜μ— ν•¨μˆ˜λ₯Ό ν• λ‹Ήν•΄μ„œ μ‚¬μš©ν•˜κΈ°λ„ ν•˜λ©°

λ‹€λ₯Έ ν•¨μˆ˜μ—μ„œ 인자둜 ν•¨μˆ˜κ°€ μ“°μž„

>>> def say_hello():
...     print('hello')
...
>>> def run_func(func):
...     func()
...
>>> run_func(say_hello)
hello
λ˜ν•œ 이런 λ°©μ‹μœΌλ‘œ ν•¨μˆ˜λ₯Ό λ‹€λ₯Έ ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜ 즉, λ°μ΄ν„°λ‘œλ„ μ‚¬μš©λ  수 μžˆλ‹€.

 

λͺ…μ‹œμ  return을 ν•˜μ§€ μ•Šμ€ 경우

λ§Œμ•½ ν•¨μˆ˜κ°€ λͺ…μ‹œμ μœΌλ‘œ return을 ν˜ΈμΆœν•˜μ§€ μ•ŠμœΌλ©΄ noneλ₯Ό λ°˜ν™˜κ°’μœΌλ‘œ κ°–λŠ”λ‹€.

 

def sum_func(a, b):
    return a + b

sum_func(4, 5)

μ˜ˆμ œμ—μ„œ 처럼 sum_funcν•¨μˆ˜κ°€ λ°˜ν™˜ 값을 κ°€μ§€κ²Œ 되고 ν•¨μˆ˜ 호좜이 μ§„ν–‰λ˜λ©΄ 좜λ ₯λ˜λŠ” 값은 μ—†λ‹€.

 

μ™œ? 단지 맀개면수 a와b에 4,5 값을 λ„£κ³  λ”ν•˜κΈ°λ§Œ ν–ˆκΈ° λ•Œλ¬Έμ—, ν•˜μ§€λ§Œ μ΄λ ‡κ²Œ 되면 달라진닀.

def sum_func(a, b):
    return a + b

print(sum_func(4, 5))
>>>
9

 

μ΄μœ λŠ” λ‹€ 잘 μ•Œλ“―μ΄ λ°˜ν™˜ κ°’ return a+b을 print()ν•¨μˆ˜λ‘œ 좜λ ₯ν–ˆκΈ° λ•Œλ¬Έμ΄λ‹€. κ·Έλ ‡λ‹€λ©΄ 이건 μ–΄λ–¨κΉŒ?

 

def sum_func(a, b):
    print(a + b)

sum_func(4, 5)

 

μ˜ˆμƒ ν–ˆλ‹€ 싢이 9λΌλŠ” κ²°κ³Όκ°€ 좜λ ₯λœλ‹€. 그럼 λ§ˆμ§€λ§‰μœΌλ‘œ 이것도 보자

 

def sum_func(a, b):
    print(a + b)

print(sum_func(4, 5))

 

이 주제의 핡심이닀. λ°”λ‘œ None λ”°λ‘œ λ‚˜λˆ μ„œ λ³Έλ‹€λ©΄ μˆ˜ν–‰μ€ 두 κ°€μ§€λ‘œ 크게 λ‚˜λˆŒ 수 μžˆλ‹€.

 

  • print()ν•¨μˆ˜
  • sum_func(a, b)ν•¨μˆ˜

 

sum_func(a, b)

 

sum_func(a, b) ν•¨μˆ˜λŠ” λ§€κ°œλ³€μˆ˜ a, bλ₯Ό λ”ν•˜λŠ” 일을 μˆ˜ν–‰ν•˜λ©° λ°˜ν™˜ κ°’ μžμ²΄λŠ” λͺ…μ‹œν•˜μ§€ μ•Šμ•˜κΈ° λ•Œλ¬Έμ— None이닀. κ·Έλ ‡μ§€λ§Œ ν•¨μˆ˜ λͺΈμ²΄μ—μ„œ print()ν•¨μˆ˜λ₯Ό μ΄μš©ν–ˆκΈ° λ•Œλ¬Έμ— 좜λ ₯은 ν•  것이닀.

 

print()


print()ν•¨μˆ˜λŠ” 인자둜 λ“€μ–΄μ˜¨ 값을 μ½˜μ†” 화면에 좜λ ₯ν•˜λŠ” 역할을 ν•˜λŠ”λ° μš°λ¦¬λŠ” 인자둜 sum_func()λ₯Ό λ„˜κ²ΌκΈ° λ•Œλ¬Έμ— sum_func()의 λ°˜ν™˜ 값을 좜λ ₯ν•  것이닀.


κ·Έλ ‡μ§€λ§Œ sum_func()의 λ°˜ν™˜ 값을 λͺ…μ‹œν•˜μ§€ μ•Šμ•˜κΈ° λ•Œλ¬Έμ— None을 좜λ ₯ν•˜κ²Œ λœλ‹€.

λŒ“κΈ€