Skip to content

Latest commit

Β 

History

History
39 lines (26 loc) Β· 2.51 KB

README.md

File metadata and controls

39 lines (26 loc) Β· 2.51 KB

3.7. λͺ¨λ“ˆ(Modules)

일반적으둜 λͺ¨λ“ˆμ€ λΆ€ν’ˆμ„ μ˜λ―Έν•©λ‹ˆλ‹€. ν”„λ‘œκ·Έλž¨μ—μ„œ 자주 μ‚¬μš©λ˜λŠ” 일반적인 κΈ°λŠ₯을 λͺ¨λ“ˆλ‘œ ν•œλ²ˆ λ§Œλ“€μ–΄ 두면, ν•„μš”ν•  λ•Œ λ§ˆλ‹€ ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λͺ¨λ“ˆμ„ μ‚¬μš©ν•˜λ©΄ λ…Όλ¦¬μ μœΌλ‘œ 파이썬 μ½”λ“œλ₯Ό ꡬ성할 수 μžˆμŠ΅λ‹ˆλ‹€. κ΄€λ ¨ μ½”λ“œλ₯Ό λͺ¨λ“ˆλ‘œ κ·Έλ£Ήν™”ν•˜λ©΄ μ½”λ“œλ₯Ό 더 μ‰½κ²Œ μ΄ν•΄ν•˜κ³  μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λͺ¨λ“ˆμ€ λ°”μΈλ”©ν•˜κ³  μ°Έμ‘°ν•  수 μžˆλŠ”, μž„μ˜λ‘œ λͺ…λͺ… 된 속성을 가진 Python 객체λ₯Ό λ§ν•©λ‹ˆλ‹€. κ°„λ‹¨νžˆ 말해, λͺ¨λ“ˆμ€ 파이썬 μ½”λ“œλ‘œ κ΅¬μ„±λœ 이미 μ‘΄μž¬ν•˜λŠ” νŒŒμΌμž…λ‹ˆλ‹€. νŒŒμ΄μ¬μ—μ„œ λͺ¨λ“ˆμ€ 관련이 μžˆλŠ” ν•¨μˆ˜λ‚˜ λ³€μˆ˜ λ˜λŠ” 클래슀 듀을 λͺ¨μ•„ 놓은 νŒŒμΌμž…λ‹ˆλ‹€. ν•¨μˆ˜λŠ” λͺ¨λ“ˆμ˜ ν•œ ν˜•νƒœμž…λ‹ˆλ‹€. λͺ¨λ“ˆμ΄ ν•¨μˆ˜λ³΄λ‹€ μ’€ 더 큰 λ²”μœ„λ₯Ό λ‚˜νƒ€λ‚Έλ‹€. λͺ¨λ“ˆλ³΄λ‹€ 더 큰 κ°œλ…μ΄ νŒ¨ν‚€μ§€(package)μž…λ‹ˆλ‹€. λͺ¨λ“ˆμ€ ν•˜λ‚˜μ˜ 파이썬 νŒŒμΌμ΄μ§€λ§Œ νŒ¨ν‚€μ§€λŠ” 파이썬 λͺ¨λ“ˆμ΄ λ“€μ–΄μžˆλŠ” 디렉토리λ₯Ό λ§ν•©λ‹ˆλ‹€.

κ·Έλ™μ•ˆ λͺ¨λ“ˆμ„ λͺ‡ μ°¨λ‘€ μ‚¬μš©ν•΄ λ³Έ 적이 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, μ œκ³±κ·Όμ„ κ΅¬ν•˜λŠ” ν•¨μˆ˜ sys.path()λ₯Ό μ‚¬μš©κΈ° μœ„ν•΄ import sys λͺ…령을 μ‹€ν–‰ν•΄μ•Ό ν•©λ‹ˆλ‹€. 이 λ•Œμ˜ import 문은 λͺ¨λ“ˆμ„ ν”„λ‘œκ·Έλž¨ μ•ˆμœΌλ‘œ 가져와 μ‚¬μš©ν•˜κΈ° μœ„ν•œ λͺ…령이고, sys λͺ¨λ“ˆμ€ μ‹œμŠ€ν…œκ³Ό κ΄€λ ¨λœ κΈ°λŠ₯을 λͺ¨μ•„ 놓은 λͺ¨λ“ˆμž…λ‹ˆλ‹€.

λ‹€μŒκ³Ό 같은 support.py 파이썬 파일이 μžˆλ‹€λ©΄

def print_func( par ):
   print "Hello : ", par
   return

λ‹€μŒκ³Ό 같은 import 문에 μ˜ν•΄ λͺ¨λ“ˆλ‘œ support.py λͺ¨λ“ˆμ„ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

# Import module support
import support
# Now you can call defined function that module as follows
support.print_func("Zara")

Python의 from 문을 μ‚¬μš©ν•˜λ©΄ λͺ¨λ“ˆμ˜ νŠΉμ • 속성을 ν˜„μž¬ λ„€μž„μŠ€νŽ˜μ΄μŠ€λ‘œ κ°€μ Έμ˜¬ 수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ fib λͺ¨λ“ˆμ—μ„œ fibonacci ν•¨μˆ˜λ₯Ό κ°€μ Έμ˜€λ €λ©΄ λ‹€μŒκ³Ό 같이 μ‚¬μš©ν•©λ‹ˆλ‹€.

from fib import fibonacci

μœ„μ˜ from 문은 fib λͺ¨λ“ˆ 전체λ₯Ό ν˜„μž¬ λ„€μž„μŠ€νŽ˜μ΄μŠ€λ‘œ κ°€μ Έμ˜€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 이것은 λͺ¨λ“ˆ fibμ—μ„œ fibonacciλΌλŠ” ν•­λͺ©μ„ import λͺ¨λ“ˆμ˜ μ „μ—­ 심볼 ν…Œμ΄λΈ”λ‘œ κ°€μ Έμ˜΅λ‹ˆλ‹€.

λ‹€μŒ import 문을 μ‚¬μš©ν•˜μ—¬ λͺ¨λ“ˆμ˜ λͺ¨λ“  이름을 ν˜„μž¬ λ„€μž„μŠ€νŽ˜μ΄μŠ€λ‘œ κ°€μ Έμ˜¬ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

from modname import *

μ΄λ ‡κ²Œ ν•˜λ©΄ λͺ¨λ“ˆμ˜ λͺ¨λ“  ν•­λͺ©μ„ ν˜„μž¬ λ„€μž„ 슀페이슀둜 μ‰½κ²Œ κ°€μ Έμ˜¬ 수 μžˆμ§€λ§Œ, 이런 μ‚¬μš© 방법은 ꢌμž₯ν•˜μ§€ μ•ŠλŠ”λ‹€κ³  ν•©λ‹ˆλ‹€.