[Python] Syntax | 04. import

2026. 2. 17. 15:14·Language/Python

import는 외부 파일(모듈)이나 폴더(패키지)에 작성된 코드를 가져와 사용하는 기능입니다.

동작 과정

import는 코드가 실행되는 런타임에서, import 줄을 만났을 때 실행됩니다. 그래서 코드를 실행하기 전 까지는 모듈을 가져오지 않습니다.

import를 통해 가져오는 코드들도 caching의 대상이 될 수 있습니다. 만약 처음 import 하는 모듈(또는 패키지)라면, sys.path를 참고하여 해당 모듈이 위치한 경로를 따라 코드를 가져옵니다. 첫 import가 완료되면, sys.module라는 dictionary 객체에 해당 모듈 코드를 저장합니다. 이후에 같은 모듈을 import 하면, sys.module에서 그 모듈이 존재하는지 확인합니다. 존재한다면 저장된 객체 주소를 불러와 사용합니다.

작성법

방식 특징 예시
import [모듈 이름] 함수 앞에 모듈 이름을 붙여 주어야 함  import math
math.sqrt()
from [모듈 이름] import [함수 이름] 모듈 이름 없이 함수를 호출할 수 있으나, 다른 모듈에 같은 이름의 함수가 있으면 충돌 위험이 있음  from math import sqrt()
sqrt()
from [모듈 이름] import * 함수를 선택에 가져오지 않고 모든 함수를 가져옴. 마찬가지로 이름 충돌의 위험이 있음 from math import *
sqrt()

의도치 않은 실행 방지

import를 하면 해당 모듈의 코드가 실행됩니다. 그렇기 때문에 아래와 같이 의도치 않은 동작이 발생할 수 있습니다.

# module_A.py
print("module_A is loaded.")

def func_A():
    print("func_A is called.")
    
func() # import만 해도 이 함수가 자동으로 호출됨

이런 문제를 방지하기 위해, 해당 파일이 직접 실행될 때만 코드가 실행된다는 조건을 붙일 수 있습니다.

# module_A.py
if __name__ == "__main__":
    func() # 이제 import 시에는 실행되지 않고, 직접 실행할 때만 실행됩니다.
728x90

'Language > Python' 카테고리의 다른 글

[Python] Syntax | 03. Decorator(@)  (0) 2026.02.16
[Python] Event Loop  (0) 2026.02.16
[Python] Library | 08. asyncio  (0) 2026.02.15
[Python] Closure  (0) 2026.02.15
[Python] Garbage Collection  (0) 2026.02.15
'Language/Python' 카테고리의 다른 글
  • [Python] Syntax | 03. Decorator(@)
  • [Python] Event Loop
  • [Python] Library | 08. asyncio
  • [Python] Closure
Rayi
Rayi
  • Rayi
    아카이브
    Rayi
  • 전체
    오늘
    어제
    • 분류 전체보기 (289) N
      • CS (40) N
        • CV (2)
        • PS (37) N
      • Reveiw (19)
        • Paper (19)
        • Github (0)
      • ML (13)
        • Pytorch (5)
      • Language (68)
        • Python (17)
        • JavaScript (32)
        • TypeScript (16)
        • C++ (3)
      • IDE (12)
      • Git (13)
      • Frontend (77)
        • React (8)
        • ReactNative (6)
        • SolidJS (20)
        • CSS (12)
      • Backend (44)
        • DB (18)
        • Node.js (11)
      • UI (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ts
    Express
    ReactNative
    CS
    ps
    nodejs
    figma
    DB
    react
    backend
    python
    vscode
    CSS
    PRISMA
    postgresql
    Three
    CV
    PyTorch
    frontend
    API
    Git
    mongo
    review
    SOLID
    ML
    expo
    deploy
    GAN
    modal
    js
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
Rayi
[Python] Syntax | 04. import
상단으로

티스토리툴바