• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

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

20.10.14 20:42 작성 조회수 210

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 으로 표기해도 되나요?

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