Como as importações relativas implícitas funcionam no Python?

Suponha que eu tenho os seguintes arquivos,

pkg/
pkg/__init__.py
pkg/main.py # import string
pkg/string.py # print("Package's string module imported")

Agora, se eu corrermain.py, diz"Package's string module imported".

Isso faz sentido e funciona de acordo com esta declaração nesteligação:

"ele procurará primeiro no diretório do pacote"

Suponha que eu modifiquei ligeiramente a estrutura do arquivo (adicionei um diretório principal):

pkg/
pkg/__init__.py
plg/core/__init__.py
pkg/core/main.py # import string
pkg/string.py # print("Package's string module imported")

Agora, se eu correrpython core/main.py, ele carrega o built-instring módulo.

Também no segundo caso, se for necessário cumprir a declaração "ele procurará primeiro no diretório do pacote " não deveria carregar o localstring.py Porquepkg é o "diretório de pacotes"?

Meu senso do termo "diretório de pacotes" éespecificamente apasta raiz de umcoleção de pastas com__init__.py. Então, neste caso,pkg é o "diretório do pacote". É aplicável amain.py e também arquivos em subdiretórios comocore/main.py porque faz parte deste "pacote".

Isso é tecnicamente correto?

PS: O que se segue depois# no snippet de código é o conteúdo real do arquivo (sem espaços à esquerda).

questionAnswers(1)

yourAnswerToTheQuestion