import math
을 실행하는 파일 하나와 import math
을 갖고 있고 첫 번째 파일을 가져 오는 두 번째 파일이있는 경우 메모리에 math
모듈이 두 번로드됩니까?파이썬 모듈을 두 번 가져올 수 있습니까?
3
A
답변
6
import math
을 입력하면 sys.modules
에 입력됩니다. 다음으로 import math
을 수행하면 math
이 sys.modules
에 있는지 확인하고 거기에서 가져옵니다.
그래서 한 번만 가져옵니다.
파이썬 모듈을 가져
http://effbot.org/zone/import-confusion.htm
는 먼저 모듈이 이미 반입되어 있는지 모듈 레지스트리 (sys.modules에)를 검사한다. 이것이 의 경우, 파이썬은 기존 모듈 객체를있는 그대로 사용합니다.그렇지 않으면, 파이썬은 다음과 같이 수행합니다
- 는
- 이 sys.modules에 사전에 해당 모듈의 객체를 삽입 (이 본질적으로 사전입니다) 비어있는 새 모듈 객체를 생성
- 로드 모듈 코드 개체 (필요한 경우 먼저 모듈 컴파일)
- 새 모듈의 네임 스페이스에서 모듈 코드 개체를 실행합니다. 코드에 의해 할당 된 모든 변수는 모듈 객체를 통해 사용할 수 있습니다.
이 은 이미 가져온 모듈을 가져 오는 것이 상당히 저렴함을 의미합니다. 파이썬은 사전에서 모듈 이름을 찾아야합니다.
0
모듈을 한 번 가져옵니다. 두 번째로
import math
이 발생하면 이미 가져온 모듈이 가져 오는 모듈의 네임 스페이스에있는 math 이름에 바인딩됩니다.
0
파이썬 모듈을 여러 번 가져 오지 않으므로 import
문 명령을 두 번 실행해도 모듈이 다시로드되지 않습니다.
다시로드하려면 reload 문을 실행해야합니다.
+0
그게 위의 코멘트 수있었습니다. –
관련 문제
- 1. 파이썬 모듈을 두 번 가져올 수 있습니까?
- 2. URL에서 파이썬 모듈을 어떻게 가져올 수 있습니까?
- 3. 파이썬 3 모듈을 가져올 수 없습니다.
- 4. IronPython에서 .PYD 모듈을 어떻게 가져올 수 있습니까?
- 5. 파이썬, 하위 디렉토리에있는 모듈을 어떻게 가져올 수 있습니까?
- 6. 는 파이썬 2.6 objc 모듈을 가져올 수 있지만, 파이썬 2.7
- 7. 파이썬 모듈을 사용할 수 있습니까?
- 8. 파이썬이 모듈을 가져올 수 없습니다.
- 9. 컴파일 된 파이썬 파일을 가져올 수 있습니까?
- 10. 왜 명령 줄에서 파이썬 모듈을 가져올 수 있습니까?하지만 스크립트에서는 가져올 수 없습니까?
- 11. ESM 프로젝트에서 npm 모듈을 가져올 수 있습니까?
- 12. IronPython에서 .pyd 모듈을 어떻게 가져올 수 있습니까?
- 13. 시스템 시작시 PowerShell 모듈을 가져올 수 있습니까?
- 14. PyPy에서 .so 모듈을 어떻게 가져올 수 있습니까?
- 15. 타사 노드 모듈을 확장으로 가져올 수 있습니까?
- 16. Python - 모듈의 별칭을 사용하여 서브 모듈을 어떻게 가져올 수 있습니까?
- 17. 하늘색 저장 대기열에서 메시지를 두 번 가져올 수 있습니까?
- 18. 두 번 차이 (파이썬)
- 19. 파이썬 모듈을 가져올 때 미친 동작이 발생했습니다.
- 20. 라이브러리에서 모듈을 가져올 수 없습니다.
- 21. 파이썬 : Httplib2 모듈 내가 모듈을 가져올 시도
- 22. OpenCV Python - contrib 모듈을 가져올 수 없습니다.
- 23. 임베디드 파이썬에서 특정 모듈을 가져올 수 없습니다.
- 24. 파이썬에서 문자열 모듈을 가져올 이유가 있습니까?
- 25. 부스트 파이썬 예제가 두 번 실패했습니다.
- 26. gi.repository에서 모듈을 가져올 수 없습니다.
- 27. 한 파이썬 모듈이 다른 파이썬 모듈을 깨뜨릴 수 있습니까?
- 28. /openmp로 컴파일 된 모듈을 가져올 수 없습니까?
- 29. OsX Mavericks에서 가져올 수있는 파이썬 모듈을 만들 수 없습니다.
- 30. 어디서 가져올 수 있도록 내 자신의 파이썬 모듈을 넣어야합니까?
아니요 ............. – thefourtheye
Python 가져 오기를 여러 번 가져 오지 않습니다. 다시 가져 오려는 경우 [reload()] (http : //docs.python. org/2/library/functions.html # reload) –
@KobiK -'reload'가 Python 3.x에서 삭제되었습니다. Python 3.2 이상에서는 ['imp.reload'] (http://docs.python.org/3.2/library/imp.html#imp.reload)를 사용할 수 있습니다. – iCodez