Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 파이썬
- animation
- crawler
- import
- DART
- pushnamed
- variable
- Android
- ML
- Collection
- function
- package
- 클래스
- textstyle
- 함수
- List
- Yocto
- Flutter
- 코틀린
- 다트
- 콜렉션
- 웹크롤러
- python
- Class
- 크롤러
- 플러터
- text
- set
- map
- kotlin
Archives
- Today
- Total
조용한 담장
[python] __import__, importlib.import_module 본문
https://docs.python.org/ko/3/library/functions.html#__import__
__import__(name, globals=None, locals=None, fromlist=(), level=0)
name 변수가 package.module 형식일 때, 일반적으로 name 에 의해 명명된 모듈이 아니라, 최상위 패키지(첫 번째 점까지의 이름)가 반환됩니다. 그러나 비어 있지 않은 fromlist 인자가 주어지면 name 에 의해 명명된 모듈이 반환됩니다.
# import spam.ham
spam = __import__('spam.ham', globals(), locals(), [], 0)
# from spam.ham import eggs, sausage as saus
_temp = __import__('spam.ham', globals(), locals(), ['eggs', 'sausage'], 0)
eggs = _temp.eggs
saus = _temp.sausage
여기서 spam.ham 모듈이 __import__() 에서 반환됩니다. 이 객체로부터, 임포트 할 이름들을 가져온 후 해당 이름들로 대입됩니다.
submodule 을 import 할때는 . 까지 쓰자...
그런데
참고: 이것은 importlib.import_module() 과 달리 일상적인 파이썬 프로그래밍에서는 필요하지 않은 고급 함수입니다.
가능한 importlib 을 쓰라는 얘기다..
__import__() 를 쓰면 import importlib 을 생략할 수 있어서 편하지만
늬앙쓰가 굳이 왜 쓰냐는 느낌이니까 importlib 으로 쓰자...
importlib.import_module(name, package=None)
모듈을 임포트 합니다. name 인자는 절대나 상대적인 항으로 임포트 할 모듈을 지정합니다 (예를 들어 pkg.mod나 ..mod). 이름이 상대적인 항으로 지정되면, package 인자는 패키지 이름을 결정하기 위한 앵커 역할을 하는 패키지 이름으로 설정해야 합니다 (예를 들어 import_module('..mod', 'pkg.subpkg')는 pkg.mod를 임포트 합니다).
m = importlib.import_module('spam.ham', 'ham')
https://docs.python.org/ko/3/library/importlib.html#importlib.import_module
import_module() 함수는 importlib.__import__() 주위를 감싸는 단순화 래퍼 역할을 합니다. 이는 함수의 모든 의미가 importlib.__import__()에서 파생됨을 뜻합니다. 이 두 함수의 가장 중요한 차이점은 import_module()이 지정된 패키지나 모듈(예를 들어 pkg.mod)을 반환하는 반면, __import__()는 최상위 패키지나 모듈(예를 들어 pkg)을 반환한다는 것입니다.
단순 래퍼 지만
반환하는게 좀 다르구나...
'tips' 카테고리의 다른 글
How to change cache location(path) of npm (0) | 2022.06.10 |
---|---|
Markdown 에 diagram 을 넣자. (0) | 2022.02.21 |
Jest Error: import statement outside a module (0) | 2021.07.29 |
간단한 내부 테스트용 HTTP server (0) | 2020.08.11 |
Debian 10 buster 에서 samba, 윈도우즈 공유 (0) | 2020.03.12 |
Comments