
import 문(statement)는 다른 python 파일(=module)에 정의된 variables, functions, classes 등을 현재 파일로 가져와 재사용할 수 있게 해주는 구문(statement)임.
0. Global Import (or Whildcard Import)
from PyQt6.Qtwidgets import *
- Global import(또는 wildcard import)는
from 모듈 import *형태로, - 모듈 내 모든 name을 현재 namespace 로 가져오는 방식임.
- 이 방법은 가독성을 해치고 name conflict (이름 충돌)을 일으킬 수 있어, 일반적으로 사용을 지양함.
보통 PEP 8 (파이썬 스타일 가이드)에서도
Wildcard Import는 지양하고
다음의 Explicit Import나 Selective Import를 권장
참고: namespace
파이썬에서 변수나 함수 등의 이름을 구분하기 위한 공간으로, 각 이름이 고유하게 매핑되는 scope(범위)를 가리킴.
global, local, built-in 등 여러 네임스페이스가 존재하며, name conflict를 방지하고 코드의 구조를 명확하게 함.
https://dsaint31.tistory.com/508
[Basic] namespace, frame, and context
Namespace 프로그래밍 등에서 나오는 namespace는 일종의 추상적인 개념 변수와 함수, 클래스 등이 정의되고 사용될 수 있는 범위(scope)를 지칭함. (때문에 scope 란 용어와 자주 같이 사용됨) variable(변
dsaint31.tistory.com
1. Explicit Import (명시적 import)
import PyQt6.QtWidgets
- 전체 module을 불러오되,
- 사용 시
PyQt6.QtWidgets.QLabel처럼 전체 경로를 명시하는 방식. - 명확성과 네임스페이스 충돌 방지에 유리.
- 하지만, 긴 모듈의 전체 경로를 기재하기가 힘들어서 aliased import (아래 3번 참고)가 보다 많이 애용됨.
package나 module 의 경로를 전부 기재하여 import!
2. Selective Import (선택적 import)
from PyQt6.QtWidgets import QLabel, QPushButton
- module에서 필요한 class나 function 등을 선택적으로 불러옴.
- 가독성과 명확성 모두 확보 가능.
from 에서는 pakcage 또는 module 의 경로가 기재되고,
import 뒤에는 해당 package나 module에 속한 submodule이나 class, function, variable 등이 기재됨
3. Aliased Import (별칭 import)
import PyQt6.QtWidgets as QtW
- 긴 module의 전체 경로를 줄여서 사용.
- QtW.QLabel처럼 짧고 명확한 코드 작성 가능.
같이보면 좋은 자료들
https://dsaint31.me/mkdocs_site/python/basic/module_package/#module
BME
Modules and Packages Module 쉽게 생각하면 Python code 로 구성된 file .py자체를 가리킨다. Module은 import될 때 각각 고유의 namespace를 가지므로, Module은 일종의 Namespace이기도 함. Python에서 module은 확장자가 .p
dsaint31.me
https://ds31x.blogspot.com/2017/01/python-module.html?q=module
Python에서 module
모듈(module) python코드로 작성된 파일 (extension으로 ".py"를 가진 파일). 즉, python 코드로 이뤄진 함수 나 변수 또는 클래스 들로 구성된 source code file 임. module은 import 구문을 이용하...
ds31x.blogspot.com
'Python' 카테고리의 다른 글
| [Py] importlib.metadata: Package 정보 확인 (0) | 2025.04.23 |
|---|---|
| [Programming] Control Flow 와 Control Structure (1) | 2025.04.23 |
| [DL] PyTorch-Hook (0) | 2025.04.10 |
| [DL] torch.nn.Linear 에 대하여 (1) | 2025.04.10 |
| [PyTorch] torch.save 와 torch.load - tensor 위주 (0) | 2025.04.08 |