이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 13872|회답: 1

[통신] Import and import에서 파이썬을 자세히 설명해 드립니다

[링크 복사]
게시됨 2018. 4. 25. 오전 11:20:35 | | | |
기록을 위해 파이썬 학습 매뉴얼에서 발췌한 내용입니다.

클라이언트는 import 또는 from 문을 실행할 수 있습니다. 모듈이 로드되지 않으면, 이 문들은 모듈 파일 프로그램을 검색, 컴파일, 실행합니다. 주요 차이점은 임포트가 모듈 전체를 읽기 때문에 변수 이름을 읽기 전에 모듈을 정의해야 한다는 점입니다; From 는 모듈별 변수 이름을 얻거나 복사합니다.

import는 변수 이름이 전체 모듈 객체를 참조하게 하므로, 모듈의 속성은 모듈 이름(예: module1.printer)에서 얻어야 합니다. 그리고 from은 변수 이름을 다른 범위로 복사하여, 모듈(예: 프린터)을 거치지 않고 복사된 변수 이름을 스크립트에서 직접 사용할 수 있습니다.

FROM 문장은 네임스페이스를 깨뜨릴 잠재력을 가지고 있습니다. 만약 from을 사용해 변수를 가져오고, 그 변수들이 스코프 내에 기존 변수와 중복되어 있다면, 그 변수들은 조용히 덮어써집니다. 임포트 문장을 사용할 때는 모듈 이름에서 그 내용을 얻어야 하므로 문제가 되지 않습니다. 하지만 from을 사용할 때는 실제로 큰 문제가 되지 않습니다. 특히 변수 이름을 명확히 나열한다면(예: 모듈에서 x, y, z) 임포트 변수 이름을 명확히 나열하면 더욱 그렇습니다.

반면, reload 호출과 함께 사용할 때는 from 문이 심각한 문제가 있는데, 가져오기 변수 이름이 객체의 이전 버전을 참조할 수 있기 때문입니다. 더불어, 모듈 import *의 폼은 네임스페이스를 깨뜨려 변수 이름을 이해하기 어렵게 만들 수 있으며, 특히 여러 파일을 가져올 때 더욱 그렇습니다.

좀 더 실용적인 제안은 단순 모듈들이 일반적으로 from보다는 import를 사용하는 경향이 있다는 것입니다. 대부분의 from 문장은 원하는 변수를 명시적으로 열거하는 데 사용되며, 파일당 *에서 온 형태를 한 번만 사용할 수 있습니다. 이렇게 하면 정의되지 않은 변수 이름도 *에서 참조된 모듈에 존재한다고 간주할 수 있습니다. 같은 변수 이름 변수를 두 개의 다른 모듈에서 사용해야 할 때는 import를 사용해야 하는데, 그럴 경우 from을 사용할 수 없습니다.

말이 많아서 뭐라고 해야 할지 모르겠어요. 간단히 이야기해볼게요.

  • 모듈 가져오기 # 모듈 소개
  • 모듈에서 가져오기 기타 # 모듈 내 클래스, 함수 또는 변수를 도입하기
  • 모듈에서 가져오기 * # 모듈 내 모든 '공용' 멤버를 소개합니다


쉽게 말하자면:

클래스 #把整个一班的学生引入了进来 임포트(import)
수입 그룹인 샤오 왕 #只把一般的小王引入了进来

예를 들어:

시간 패키지가 그 예이며, 다음 두 가지 작성 방법은 다음과 같습니다:








이전의:파이썬 패키지에서 함수를 사용하는 방법
다음:HP 노트북 및 데스크탑 고스트 윈도우7 32&64 씨 드라이브 에디션 v201801
 집주인| 게시됨 2018. 4. 25. 오전 11:22:51 |
DateTime 가져오기는 전체 DateTime 패키지를 소개하는 데 목적이 있습니다. DateTime 패키지에서 Datetime 클래스를 사용한다면 모듈 이름 자격증을 추가해야 합니다.



모듈 이름 수식자를 추가하지 않으면 오류가 발생합니다: TypeError: 'module' 객체는 호출 불가 \ AttributeError: 'module' 객체는 'now'라는 속성이 없습니다



DateTime 가져오기에서 DateTime은 DateTime 패키지 내 DateTime 클래스에만 도입되며, 사용할 때 모듈 이름 수식자를 추가할 필요가 없습니다.



요약: Python에서 모듈을 가져오는 방법은 두 가지가 있습니다: import module과 from module import, 차이점은 전자는 모든 임포트된 것을 사용할 때 모듈 이름을 추가해야 하는 반면, 후자는 그렇지 않다는 점입니다.

면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com