não vi a palavra reservada "def", por isso achei que não seria executado
arquivo a.py
print('executando a')
arquivo b.py
print('executando b')
# principal.py
import a
import b
não vi a palavra reservada "def", por isso achei que não seria executado
arquivo a.py
print('executando a')
arquivo b.py
print('executando b')
# principal.py
import a
import b
Oii Marinho, como você está?
Não precisa necessariamente ter a palavra reservada def que se refere a criação de uma função. A ausência de uma função faz com que ao importar um arquivo em outro, o código do arquivo importado seja todo executado.
Muito teórico? Vamos a um exemplo prático.
Da forma como está o seu código temos como resultado o seguinte:
executando a
executando b
Certo?!
Agora, imagine que o arquivo "a.py" esteja modularizado em uma função:
def a():
print('executando a')
E o arquivo "b.py" continua da mesma forma que você apresentou:
print('executando b')
Ao importamos o arquivo "a.py" e "b.py" no arquivo "principal.py" o que teremos é a apenas a mensagem:
executando b
E isso ocorreu porque em nosso arquivo "a.py" possuíamos uma função. E caso quiséssemos utilizar essa função no arquivo principal precisaríamos chamá-la explicitamente. Exemplo:
a.a()
Por que é uma boa prática utilizarmos funções?
Para que ao importar um arquivo em outro possamos ter o controle de escolher qual função iremos chamar, além de organização de código. E além disso, nem sempre iremos precisar executar todo o código do arquivo que foi importado.
Qualquer dúvida estou por aqui, tá bom? A gente vai conversando.
Grande abraço!