찾다

 >  Q&A  >  본문

[Python Newbie] 중첩 패키지 가져오기에 대해 질문했습니다.

먼저 내 패키지의 디렉터리 구조를 살펴보세요.

가장 바깥쪽 패키지 이름은 Msgnew이며, 여기에는 get이라는 모듈과 Msg라는 하위 패키지가 있습니다. Msg 하위 패키지에 들어가면 init 파일도 있는 것을 볼 수 있습니다. 그 안에는 2개의 모듈이 있는데 하나는 Sendmsg이고 다른 하나는 receivemsg 모듈입니다

이제 하위 패키지의 Sendmsg 모듈을 가져오고 그 기능 중 하나를 사용하고 싶습니다.
그런데 그림과 같이 실제로 세 가지 기능이 있는 Sendmsg 모듈을 소개하겠습니다.

가져오기 프로세스의 코드는 다음과 같습니다.

으아아아

코드 1과 코드 2가 있습니다
코드 1의 실행 결과는 다음과 같습니다

그런 다음 코드 1을 주석 처리한 다음 코드 2를 실행합니다. 결과는 다음과 같습니다.

이건 잘 이해가 안가네요


빨간색 상자에 있는 두 코드가 동일하지 않나요?
내 생각에는 이 둘은 같은 의미여야 합니다. 왜 하나는 틀리고 다른 하나는 맞나요?

phpcn_u1582phpcn_u15822704일 전774

모든 응답(2)나는 대답할 것이다

  • 大家讲道理

    大家讲道理2017-06-30 09:56:57

    모두 하위 모듈이지만 구현 논리가 실제로 다르기 때문에 최종 가져오기는 파서에게 Sendmsg 파일을 찾을 수 있는 위치를 알려주는 Python文件,而并非一个模块目录,所以代码二中import Sendmsg部分才是真正的引入了这个Python文件,而前面的from Msgnew.Msg이어야 한다는 사실로 이어집니다.

    회신하다
    0
  • 某草草

    某草草2017-06-30 09:56:57

    내가 직면한 문제가 어디에 있는지 알고 있습니다.
    가져오기가 모듈이 아닌 패키지인 경우, 내부의 모듈을 함께 직접 가져오려면 패키지의 init 파일에 다음을 작성해야 합니다.

    으아악

    사진에 표시된 대로:

    다음번에 실행하면 성공할거에요!

    회신하다
    0
  • 취소회신하다