파이썬 | 모듈 임포트 하는법

2022. 7. 8. 00:02·Python
반응형

모듈

파이썬 모듈은 변수, 함수, 클래스 등을 따로 모아놓은 파일이다. 

모듈을 사용하는 이유

다른 파일에서 모듈에 있는 함수 등의 재사용이 가능하다. 

파이썬의 len()함수 등을 직접 구현하지 않아도 사용할 수 있는건 파이썬이 함수를 모듈로 구현해놨기 때문이다.

모듈을 불러오는법

# my_module.py
my_module_var = 7

my_module.py라는 모듈을 만들고 그 안에 my_module_var를 정의했다.

import 모듈명

이 변수를 다른 파일에서 불러오려면 import를 사용하면 된다.

# main.py
import my_module	# .py는 붙이지 않는다

그리고 사용할 때는 임포트한 모듈 이름.사용할 변수/함수/클래스 이름을 적어주면 된다.

# main.py
import my_module

print(my_module.my_module_var)
# 결과
# 7

from 모듈명 import ...

그리고 import 대신 from 모듈이름 import 사용할 함수/변수/클래스 이름을 이용해 임포트 할 수도 있다.

# main.py
from my_module import my_module_var

print(my_module_var)
# 결과
# 7

이 경우는 앞에 모듈 이름을 적지 않고 바로 모듈 안 함수/변수/클래스명을 사용할 수 있다.

모듈 전체의 함수/변수/클래스명을 임포트해서 바로 사용하고 싶다면

from 모듈명 import *

을 사용하면 된다. 

 

import 모듈명으로 모듈 불러오고 잘못 사용한 예

현재 장고 프로젝트 안에 products 앱이 있고 그 안에 models.py에 

class Menu(models.Model):
    name = models.CharField(max_length=45)

    class Meta:
        db_table = 'menu'

이렇게 Menu 클래스가 정의되어 있다.

 

manage.py에서 products.models.py를 import하고

import products.models
Menu.objects.create(name=”음료”)

이렇게 바로 Menu 클래스를 사용하려고 했는데

이런 오류가 났다.

Traceback (most recent call last):
File "<console>", line 1, in <module>
NameError: name 'Menu' is not defined

Menu라는게 없다는 내용.

import 모듈이름 을 하면 안의 클래스를 사용할 때 모듈이름.클래스명을 다 적어줘야 하기 때문에

products.models.Menu.objects.create(name=”음료”)

이렇게 사용해야 정상적으로 데이터가 생성된다.

Menu.objects.create(name="음료")

위 방식으로 바로 Menu클래스를 사용하고 싶다면

from roducts.models import *
from roducts.models import Menu	# Menu클래스만 임포트

이 둘중에 하나로 모듈 임포트를 해야한다.

반응형
저작자표시 비영리 변경금지 (새창열림)

'Python' 카테고리의 다른 글

파이썬 | for 요소 in 리스트  (0) 2022.07.14
파이썬 오류 | "{" was not closed Pylance  (0) 2022.07.12
파이썬 | print(i, end='') 개행 없이 한줄로 출력  (0) 2022.07.07
파이썬 | 삼항연산자  (0) 2022.07.01
파이썬 | 모듈 패키지 절대경로 상대경로  (0) 2022.06.26
'Python' 카테고리의 다른 글
  • 파이썬 | for 요소 in 리스트
  • 파이썬 오류 | "{" was not closed Pylance
  • 파이썬 | print(i, end='') 개행 없이 한줄로 출력
  • 파이썬 | 삼항연산자
이라후
이라후
  • 이라후
    화이팅
    이라후
  • 전체
    오늘
    어제
    • 분류 전체보기 (133)
      • TIL (23)
      • 기타 (26)
      • Python (14)
      • Django (10)
      • JavaScript (8)
      • git & GitHub (8)
      • Web (10)
      • Go (3)
      • wecode (31)
  • 반응형
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
이라후
파이썬 | 모듈 임포트 하는법
상단으로

티스토리툴바