Observando os arquivos exibidos (script e módulo), ao executar o script qual será a saída impressa?
Questão
Observando os arquivos exibidos (script e módulo), ao executar o script qual será a saída impressa?
Arquivo program.py (à esquerda):
from modulo_a import funcao1, funcao2
def funcao1():
print("Funcao 1 do Script")
# Inicio do Programa
funcao1()
funcao2()
Arquivo modulo_a.py (à direita):
def funcao1():
print("Funcao 1 do Módulo")
def funcao2():
print("Funcao 2 do Módulo")
Alternativas
A) Funcao 1 do Módulo Funcao 2 do Módulo
B) Funcao 1 do Script Funcao 2 do Módulo
C) Funcao 1 do Script Funcao 2 do Script
D) Funcao 1 do Módulo Funcao 2 do Script
Explicação
- Ao executar o script, a primeira linha faz:
from modulo_a import funcao1, funcao2
Isso traz referências para funcao1 e funcao2 do arquivo modulo_a.py para o namespace do script.
- Em seguida, o script define novamente uma função chamada
funcao1:
def funcao1():
print("Funcao 1 do Script")
Em Python, ao definir funcao1 no próprio script, esse nome passa a apontar para a nova definição, sobrescrevendo (no namespace do script) a referência importada anteriormente.
- Na execução:
funcao1()chamará a versão do script → imprimeFuncao 1 do Script.funcao2()não foi redefinida no script, então continua apontando para a função importada do módulo → imprimeFuncao 2 do Módulo.
Logo, a saída será:
Funcao 1 do Script Funcao 2 do Módulo
Alternativa correta: B.