Respostas:
from file1 import *
importará todos os objetos e métodos no arquivo1
ImportError: No module named file1
__init__.py
arquivo? Veja aqui para mais detalhes.
Importar para file1
dentro file2
:
Para importar todas as variáveis do arquivo1 sem inundar o espaço de nome do arquivo2, use:
import file1
#now use file1.x1, file2.x2, ... to access those variables
Para importar todas as variáveis do arquivo1 para o espaço de nome do arquivo2 (não recomendado):
from file1 import *
#now use x1, x2..
Dos documentos :
Embora seja válido usar
from module import *
no nível do módulo, geralmente é uma má idéia. Por um lado, isso perde uma propriedade importante que o Python possui - você pode saber onde cada nome de nível superior é definido por uma simples função de "pesquisa" no seu editor favorito. Você também se abre para problemas no futuro, se algum módulo aumentar funções ou classes adicionais.
import file1
então.
file1.varX
para cada arquivo.
Melhor importar x1 e x2 explicitamente:
from file1 import x1, x2
Isso permite que você evite conflitos desnecessários no namespace com variáveis e funções file1
durante o trabalho file2
.
Mas se você realmente quiser, poderá importar todas as variáveis:
from file1 import *
Na verdade, isso não é realmente o mesmo para importar uma variável com:
from file1 import x1
print(x1)
e
import file1
print(file1.x1)
Embora no momento da importação x1 e file1.x1 tenham o mesmo valor, elas não são as mesmas variáveis. Por exemplo, chame uma função no arquivo1 que modifique x1 e tente imprimir a variável no arquivo principal: você não verá o valor modificado.
Marc resposta está correta. Na verdade, você pode imprimir o endereço de memória para as variáveis print(hex(id(libvar))
e pode ver que os endereços são diferentes.
# mylib.py
libvar = None
def lib_method():
global libvar
print(hex(id(libvar)))
# myapp.py
from mylib import libvar, lib_method
import mylib
lib_method()
print(hex(id(libvar)))
print(hex(id(mylib.libvar)))
Como Python
você pode acessar o conteúdo de outros arquivos, como se eles
fossem algum tipo de biblioteca, em comparação com outros idiomas, como java ou qualquer outro idioma de base, isso é muito legal;
Isso faz com que acessar o conteúdo do arquivo ou importá-lo para processá-lo ou fazer qualquer coisa com ele; E essa é a principal razão pela qual o Python
idioma é altamente preferido para ciência de dados e aprendizado de máquina etc.;
E esta é a imagem de project structure
Onde estou acessando variáveis de .env file
onde API links
residem as chaves e Secret.
Estrutura geral:
from <File-Name> import *