모듈을 가져 와서 다시 가져 오거나 다시 가져 오거나 덮어 쓰거나 건너 뛰시겠습니까? "a"및 "b"모듈을 가져오고 모듈 "b"를 모듈 "a"로 가져 오면 어떻게됩니까? 이것을하는 것이 안전합니까? 예를 들어, 그 모듈 "b"가 그 안에 인스턴스화 된 클래스를 가지고 있다면, 그 인스턴스를 두 번 인스턴스화할 것인가?파이썬의 "가져 오기"는 어떻게 내부적으로 작동합니까?
답변
import
로드 일치 .py
, .pyc
또는 .pyo
파일 (참조 "파이썬 모듈을 가져 오기 수행 무엇?") http://effbot.org/zone/import-confusion.htm는, 저장을 :
자세한 내용은이 페이지를 참조하십시오 사전에 sys.modules
사전에 정규화 된 ("점으로 구분 된") 이름이 있습니다. 두 번째 import
모듈이이 사전에 가져올 모듈을 찾으면 파일을 다시로드하지 않고 반환합니다.
당신이 모듈을 가져올 때, 다음, 다시 그것을 다시 가져가가/덮어 다시 들여, 또는 얻을 것이다를 생략 :
귀하의 질문에 대답하려면?
건너 뜁니다. 명시 적으로 모듈을 다시 가져 오려면 reload()
내장 함수를 사용하십시오.
"a"및 "b"모듈을 가져오고 모듈 "b"를 모듈 "a"로 가져 오면 어떻게됩니까?
import a
import b
이미
a
에 의해로드 된 모듈
sys.modules['b']
을 반환합니다
a.py[c]
에서
a
을로드합니다.
안전한가요?
예. 그렇습니다.
예를 들어 해당 모듈 "b"에 클래스가 인스턴스화되어 있으면 두 번 인스턴스화됩니까?
아니요.
모듈은 한 번만 인스턴스화됩니다. 동일한 모듈을 다른 여러 모듈로 가져 오는 것이 안전합니다. 모듈 자체에서 작성된 클래스 인스턴스 (오브젝트)가있는 경우 가져 오는 모든 모듈에서 동일한 오브젝트가 액세스됩니다.
sys.modules
모듈 이름을 모듈 객체를 매핑 사전입니다 : 당신이 좋아하는 경우에 당신이 할 수있는
는 살펴 가져온 모든 모듈이있다. import 문이 수행하는 첫 번째 작업은 sys.modules
이고, 모듈을 찾을 수없는 경우 인스턴스가 생성되어 나중에 가져 오기 위해 sys.modules
에 추가됩니다. 모듈 객체를 생성,
- 1. stringstream은 어떻게 내부적으로 작동합니까?
- 2. typedef는 내부적으로 어떻게 작동합니까?
- 3. LINQ는 내부적으로 어떻게 작동합니까?
- 4. 데이터베이스가 내부적으로 어떻게 작동합니까?
- 5. 근검은 어떻게 내부적으로 작동합니까?
- 6. Firebug는 내부적으로 어떻게 작동합니까?
- 7. Viewstate는 내부적으로 어떻게 작동합니까?
- 8. Java에서 가져 오기는 어떻게 수행됩니까?
- 9. CreateMutex()는 내부적으로 어떻게 작동합니까?
- 10. LinkedList는 Java에서 내부적으로 어떻게 작동합니까?
- 11. joomla breadcrumbs는 어떻게 내부적으로 작동합니까?
- 12. SQLite 커서는 내부적으로 어떻게 작동합니까?
- 13. "is"연산자는 내부적으로 어떻게 작동합니까?
- 14. ASP.NET 라우팅은 어떻게 내부적으로 작동합니까?
- 15. 람다 식은 어떻게 내부적으로 작동합니까?
- 16. 변수 교환은 어떻게 내부적으로 작동합니까?
- 17. C# eventhandler는 내부적으로 어떻게 작동합니까?
- 18. BULK INSERT는 어떻게 내부적으로 작동합니까?
- 19. QProcess는 내부적으로 리눅스에서 어떻게 작동합니까?
- 20. static 키워드는 어떻게 내부적으로 작동합니까?
- 21. DBContext SaveChanges는 내부적으로 어떻게 작동합니까?
- 22. 가져 오기는/
- 23. 파이썬의 범위 함수는 어떻게 작동합니까?
- 24. C++ : 함수 변수 선언, 내부적으로 어떻게 작동합니까?
- 25. Signalr : PersistentConnection에서 메시지를받는 것이 내부적으로 어떻게 작동합니까?
- 26. SQL 매개 변수는 내부적으로 어떻게 작동합니까?
- 27. jquery 애니메이션 기능은 어떻게 내부적으로 작동합니까?
- 28. 브라우저와 포트 간 통신이 내부적으로 어떻게 작동합니까?
- 29. JavaScript 내에서 이벤트 처리는 내부적으로 어떻게 작동합니까?
- 30. 어떻게 cairngorm 프레임 워크가 내부적으로 작동합니까?
설명서가 여기에 아주 명확하게 보인다. 설명서 중 어떤 부분이 혼란 스럽습니까? 자신을 혼란스럽게 한 부분에 대한 구체적인 견적이나 링크를 제공 할 수 있습니까? 혼란스러운 부분이 무엇인지는 분명하지 않습니다. 예 : http://docs.python.org/tutorial/moduleshtml # more-on-modules는 분명해 보입니다. 너 혼란스러워하는 부분을 설명해 주시겠습니까? –