인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

MIKE.aeon님의 프로필 이미지
MIKE.aeon

작성한 질문수

남박사의 파이썬으로 실전 웹사이트 만들기

플라스크 프로젝트를 모듈화 하여 패키징 하기

import 문의 - 폴더위치 및 파일명, 함수명

작성

·

283

1

안녕하세요 강사님.

현재 파일구조는 위와 같습니다. 각 파일별 import 규칙이 다른데, 관련하여 문의 드립니다.

run.py - from main import app /  하위폴더인 main 폴더를 찾고, init의 변수명.

init.py - from .common import login_required / 현재폴더의 common 파일을 찾고 거기서 함수명.

                 from .filter import format_datetime / 현재폴더의 filter 파일을 찾고 거기서 함수명.

                 from . import board  / 여기서는 현재폴더의 파일명.

                 from . import member  / 여기서는 현재폴더의 파일명.

board.py - from main import * / 현재폴더명의 모든것.

질문은 아래와 같습니다.

1. init.py - from .common import login_required ==> from . import common 으로 표기해도 되나요?

2. init.py - from . import board ==> from .board import * 으로 표기해도 되나요?

3. board.py - from main import * ==> from . import  __init__ 으로 표기해도 되나요?

4. run.py - from main import app ==> from .main import app 으로 표기해도 되나요?

어떤 경우는 현재폴더의 파일명/함수명, 현재폴더/파일명, 현재폴더명/*, 하위폴더명/하위폴더의__init__의 변수명, 등등, 

from/import의 규칙 및 구조가 궁금해서 문의드립니다.

감사합니다.

답변 1

0

남박사님의 프로필 이미지
남박사
지식공유자

1. init.py - from .common import login_required ==> from . import common 으로 표기해도 되나요?

2. init.py - from . import board ==> from .board import * 으로 표기해도 되나요?

둘중 어떻게 하셔도 상관없으리라 생각됩니다. 다만 사용할때 common. 으로 접근해야 하기 때문에 코드가 많은경우 불필요한 코드를 더 쓰게 되는 부분도 감안해야 할듯 보입니다.

3. board.py - from main import * ==> from . import  __init__ 으로 표기해도 되나요?

__init__ 는 해당 프로젝트가 실행될때 자동으로 초기화 되는 파일이므로 따로 임포트를 하지 않는게 좋습니다. 만약 init에 선언된 내용을 사용해야 한다면 따로 파일을 만들어 관리하는걸 추천합니다.

4. run.py - from main import app ==> from .main import app 으로 표기해도 되나요?

같은 표현이라고 보셔도 상관없습니다.

MIKE.aeon님의 프로필 이미지
MIKE.aeon

작성한 질문수

질문하기