728x90
반응형
Python 내부에서는 모듈을 import 하는 함수를 여러번 실행하더라도 모듈은 한번만 Import 되기 때문에 사실상 어디서 하던 상관 없다고 한다.
심지어 함수 안에서 모듈을 import 하는 것이 실행속도가 더 빠르다고 한다. 왜냐하면 맨 위에서 컴파일하면 LOAD_GLOBAL 하는 반면, 함수 안에서는 LOAD_FAST 하기 때문에 함수 안에서 Import 하는 것이 더 빠르다고 한다. 그럼에도 불구하고 맨 위에 모듈을 import 하는 이유는 Python 스타일 가이드가 그렇게 쓰라고 권장했기 때문이다.
맨 위에서 import 하는 경우
import random
def f():
L = []
for i in xrange(1000):
L.append(random.random())
for i in xrange(1000):
f()
$ time python import.py
real 0m0.721s
user 0m0.412s
sys 0m0.020s
함수 안에서 import 하는 경우
def f():
import random
L = []
for i in xrange(1000):
L.append(random.random())
for i in xrange(1000):
f()
$ time python import2.py
real 0m0.661s
user 0m0.404s
sys 0m0.008s
728x90
반응형
'Programming > Python' 카테고리의 다른 글
[Python] Python Schedule 모듈 이용하여 원하는 시간대에 프로그램 실행 시키기 (5) | 2020.11.02 |
---|---|
[Python] Why time.time() gives 0.0? (0) | 2020.06.17 |
[Python] 파일 읽고 쓰기 (0) | 2020.03.09 |
[Python] Anaconda 가상환경에서 spyder 실행하기 (Windows) (2) | 2020.02.07 |
[Python] 파일 존재 유무 검사 (0) | 2020.01.08 |