As sintaxe:
from MODULO import *
e
from . import MODULO
Executam a mesma coisa ?
As sintaxe:
from MODULO import *
e
from . import MODULO
Executam a mesma coisa ?
Olá Maercio, tudo bem com você?
Quando fazermos o uso da sintaxe from <nome_do_módulo> import *
estamos informando que deverá ser realizado o importe completo do módulo, esse modo de importação será usado quando temos a necessidade de uso de todas as classes, evitando assim a criação de uma linha de código muito extensa.
Caso tenhamos que utilizar apenas classes específicas de um módulo podemos utilizar a seguinte sintaxe: from <nome_do_módulo> import <nome_da_classe>
.
Importando dessa maneira, temos a seguinte sintaxe de criação de um objeto.
from modulo import *
obj = NomeDaClasse()
Já quando utilizamos apenas o ponto após a cláusula from
estamos fazendo uma importação informando um caminho para o módulo, em Python será usado o ponto (.), quando informando apenas um ponto (.) estamos informando que o módulo que vamos importar estará dentro da nossa pasta de trabalho, fazendo a importação dessa maneira, a sintaxe de criação de um objeto ficará da seguinte forma:
from . import modulo
obj = modulo.ClasseUm()
Note que nesse tipo de importação primeiramente será necessário declararmos o nome do módulo e logo após chamarmos a classe desse módulo, modulo.ClasseUm()
.
Os dois modelos de importação apresentados vão importar todas as classes presentes em um módulo, mas possuem uma sintaxe diferente de criação de objetos. O segundo modelo com o uso do ponto irá especificar o local de busca pelo módulo.
Para saber um pouco mais sobre os tipos de importação, recomendo a leitura do seguinte artigo, nele será tratado os prós e contras de cada tipo de importação, irá apresentar como utilizar o ponto (.) para acessar pastas específicas com os módulos.
O artigo acima está em inglês, caso tenha dificuldade com o idioma recomendo o uso do tradutor do navegador.
Fico à disposição em caso de dúvidas.
Abraços e bons estudos.
Compreendi, muito obrigado