Ambiente de script de nível superior principal
O que é
__main__ é o nome do escopo em que o código de nível superior é executado. O nome de um módulo é definido como igual a __main__ quando lido da entrada padrão, de um script ou de um prompt interativo.
Um módulo pode descobrir se está sendo executado no escopo principal verificando seu próprio __name__, o que permite um idioma comum para executar código condicionalmente em um módulo. Quando é executado como um script ou com python -m, mas não quando é importado:
# __name__ == "__main__": verifica se o script é executado diretamente (não importado)
if __name__ == "__main__": # Verdadeiro quando executado como script, Falso quando importado
# executa somente se executado como script
main()
Para um pacote, o mesmo efeito pode ser alcançado incluindo um módulo main.py, cujo conteúdo será executado quando o módulo for executado com -m.
Por exemplo, estamos desenvolvendo um script projetado para ser usado como um módulo, devemos fazer:
# Exemplo: a função pode ser importada, mas o código de teste só é executado quando executado diretamente
def add(a, b):
return a+b
if __name__ == "__main__": # Só é executado quando o arquivo é executado, não quando importado
add(3, 5)
Faça login para responder este quiz e acompanhar seu progresso de aprendizagem
__name__ quando um arquivo Python é executado diretamente como um script?"**main**"NoneTrueVantagens
- Todo módulo Python tem seu
__name__definido e, se for__main__, implica que o módulo está sendo executado de forma independente pelo usuário, e podemos tomar as ações apropriadas correspondentes. - Se você importar este script como um módulo em outro script, o nome é definido como o nome do script/módulo.
- Arquivos Python podem funcionar como módulos reutilizáveis ou como programas autônomos.
if __name__ == "__main__":é usado para executar algum código somente se o arquivo for executado diretamente e não estiver sendo importado.
Faça login para responder este quiz e acompanhar seu progresso de aprendizagem
if __name__ == "__main__":?