[Python응용] 8. 환경변수 등록과 from절과 import절 사용하기
모듈 로딩을 위한 환경 변수 등록은?
- 윈도우 환경변수 등록
- 경로 추가 방법
- 시스템 속성
- 고급 -> 환경변수 클릭
- PYTHONPATH 환경변수 추가
- 동적으로 경로 추가 방법’
- sys.path.append()로 경로 추가
- sys.path.remove()로 경로 삭제
- 경로 추가 방법
import sys
sys.path
['', 'D:\\Work\\Dev\\Python\\python38.zip', 'D:\\Work\\Dev\\Python\\DLLs', 'D:\\Work\\Dev\\Python\\lib', 'D:\\Work\\Dev\\Python', 'D:\\Work\\Dev\\Python\\lib\\site-packages']
from절과 import절의 정의와 활용
정의
- from
- 특정 모듈을 지정해서 메모리에 탑재할 때 사용하는 구문
- import
- 특정 함수를 지정해서 메모리에 탑재할 때 사용하는 구문
활용
- from <모듈> import <어트리뷰트>
어트리뷰트>모듈>
- 임포트된 어트리뷰트는 ‘모듈이름.어트리뷰트이름’같은 형식으로 쓰지않고 바로 사용 가능
from simpleset import union
union([1, 2, 3], [3], [3, 4])
[1, 2, 3, 4]
intersect([1, 2], [1])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'intersect' is not defined
활용2
- from <모듈> import *
모듈>
- 모듈 내 이름 중 _로 시작하는 어트리뷰트를 제외하고 모든 어트리뷰트를 현재의 이름 공간으로 임포트 가능
from simpleset import *
dir()
['WRAPPER_ASSIGNMENTS', 'WRAPPER_UPDATES', '__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'cmp_to_key', 'difference', 'intersect', 'lru_cache', 'partial', 'partialmethod', 'reduce', 'singledispatch', 'singledispatchmethod', 'total_ordering', 'union', 'update_wrapper', 'wraps']
활용3
- 모듈은 메모리에 한 번만 로딩
- 참조하는 별칭은 여러 개 있을 수 있음
import testmodule as test1
hello world
import testmodule as test2 # hello world 출력 안됨
dir()
['WRAPPER_ASSIGNMENTS', 'WRAPPER_UPDATES', '__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'cmp_to_key', 'difference', 'intersect', 'lru_cache', 'partial', 'partialmethod', 'reduce', 'singledispatch', 'singledispatchmethod', 'total_ordering', 'union', 'update_wrapper', 'wraps']
test1.printDefaultValue()
2
test1.defaultvalue = 100
test2.printDefaultValue() # 이름은 다르지만 동일한 것을 참조
100