λͺ¨λ“ˆ(module)


λͺ¨λ“ˆ


  • λͺ¨λ“ˆ : ν•¨μˆ˜λ‚˜ λ³€μˆ˜, 클래슀λ₯Ό λͺ¨μ•„ 놓은 파일

  • λͺ¨λ“ˆμ˜ μ’…λ₯˜

    • λ‚΄μž₯ λͺ¨λ“ˆ(built-in module) : ν‘œμ€€ λͺ¨λ“ˆ, νŒŒμ΄μ¬μ„ μ„€μΉ˜ν•  λ•Œ 기본으둜 μ œκ³΅λ˜λŠ” λͺ¨λ“ˆ

    • μ‚¬μš©μž 생성 λͺ¨λ“ˆ : ν”„λ‘œκ·Έλž˜λ¨Έκ°€ 직접 μž‘μ„±ν•œ λͺ¨λ“ˆ

    • μ„œλ“œνŒŒν‹°(Thrid-party) λͺ¨λ“ˆ : λ‹€λ₯Έ κΈ°μ—…μ΄λ‚˜ ν”„λ‘œκ·Έλž˜λ¨Έκ°€ μ‚¬μš©ν•  수 있게 λ§Œλ“  λͺ¨λ“ˆ


λͺ¨λ“ˆ μ‚¬μš©ν•˜κΈ°


  • μ™ΈλΆ€ λͺ¨λ“ˆ 뢈러였기

    • import λͺ¨λ“ˆλͺ…
      / from λͺ¨λ“ˆλͺ… import ν•¨μˆ˜μ΄λ¦„1, ν•¨μˆ˜μ΄λ¦„2, ...

    • sys.path.append(λͺ¨λ“ˆμ„ μ €μž₯ν•œ 디렉터리 경둜)

    • from λͺ¨λ“ˆλͺ… import * : λͺ¨λ“ˆ λ‚΄ λͺ¨λ‘ 뢈러였기

    • ν™•μž₯자 μƒλž΅

    • νŒŒμΌμ— μžˆλŠ” λ³€μˆ˜λ‚˜ ν•¨μˆ˜λŠ” 파일λͺ….λ³€μˆ˜ / 파일λͺ….ν•¨μˆ˜()둜 호좜

    • ex)

      • module_test.py

          variable = 3
        
          def add(x, y):
              return x+y
        
      • test.py

          import module_test
          print(module_test.add(3, 4))
          ### 좜λ ₯κ²°κ³Ό > 7
        
        
          from module_test import add
          print(add(2, 5))
          ### 좜λ ₯κ²°κ³Ό > 7
        
    • λͺ¨λ“ˆ 이름 λ°”κΎΈκΈ° : import λͺ¨λ“ˆλͺ… as λ°”κΏ€λͺ¨λ“ˆλͺ…

        import module_test as m_test
        print(m_test.variable)
      
        ### 좜λ ₯κ²°κ³Ό > 3
      
  • νŒ¨ν‚€μ§€ μ•ˆ λͺ¨λ“ˆ 뢈러였기

    • from νŒ¨ν‚€μ§€λͺ… import λͺ¨λ“ˆλͺ…
      / import νŒ¨ν‚€μ§€λͺ….λͺ¨λ“ˆλͺ…

    • python3.3 버전 이전 : 디렉토리가 νŒ¨ν‚€μ§€λ‘œ 인정받기 μœ„ν•΄μ„œλŠ” __init__.pyλΌλŠ” 파일이 내뢀에 μžˆμ–΄μ•Ό ν–ˆλ‹€ / ν•˜μœ„ 버전 ν˜Έν™˜μ„ μœ„ν•΄ __init__.py νŒŒμΌμ„ μƒμ„±ν•˜λŠ” 것이 μ•ˆμ „ν•œ 방법!

    • νŒ¨ν‚€μ§€ μ•ˆμ˜ λͺ¨λ“  λͺ¨λ“ˆ 뢈러였기

      • νŒ¨ν‚€μ§€ 디렉토리 μ•ˆμ— __init__.py 파일 생성
        -> __all__=['λͺ¨λ“ˆμ΄λ¦„1, λͺ¨λ“ˆμ΄λ¦„2, ...]
        -> from νŒ¨ν‚€μ§€λͺ… import *
  • __name__ / __main__

    • __name__ : λͺ¨λ“ˆμ˜ 이름이 μ €μž₯λ˜λŠ” λ³€μˆ˜, import둜 λͺ¨λ“ˆμ„ 가져왔을 λ•Œ λͺ¨λ“ˆμ˜ 이름이 듀어감

    • 파이썬 인터프리터가 졜초둜 μ‹€ν–‰ν•œ 슀크립트 파일의 __name__μ—λŠ” __main__이 듀어감 > ν”„λ‘œκ·Έλž¨μ˜ μ‹œμž‘μ (entry point)

    • if __name__ = '__main__' : __name__λ³€μˆ˜μ˜ 값이 β€˜__main__β€˜μΈμ§€ 확인 > ν˜„μž¬ 슀크립트 파일이 ν”„λ‘œκ·Έλž¨μ˜ μ‹œμž‘μ μ΄ λ§žλŠ”μ§€ νŒλ‹¨ν•˜κΈ° μœ„ν•¨ > 슀크립트 파일이 메인 ν”„λ‘œκ·Έλž¨μœΌλ‘œ μ‚¬μš©λ  λ•Œμ™€ λͺ¨λ“ˆλ‘œ μ‚¬μš©λ  λ–„λ₯Ό ꡬ뢄할 수 있음

Categories:

python