Você deve ter visto esta linha de código if __name__=="__main__": muito em scripts Python, sem saber qual é seu propósito real. Não se preocupe porque neste breve blog iremos discutir isso
Quando você executa diretamente um programa ou script, o Python atribui automaticamente "main" à variável especial name. Isso é feito basicamente para indicar que o arquivo é o script "principal" aqui e está sendo executado diretamente em vez de ser importado para outro.
Para entender isso, crie um novo script Python, digamos que o nomeie "example.py" e escreva:
print("Name of Script: ", __name__)
Execute isso e você verá a saída Nome do script: __main__. Isso ocorre simplesmente porque o arquivo está sendo executado diretamente.
Agora, crie outro arquivo de script python e importe o example.py para este arquivo. Execute-o e você verá um resultado diferente dizendo Nome do Script: exemplo. Isso ocorre simplesmente porque agora, em vez de executá-lo diretamente, estamos importando o script e executando-o indiretamente. Assim, Python agora está mostrando o nome real do arquivo.
Vamos fazer algumas alterações em nosso arquivo de exemplo, para que possamos entendê-lo ainda melhor.
def s_name(): print("Name of Script: ", __name__) s_name() def greet(): print("Hello! How are you doing?") if __name__=="__main__": greet()
Agora, se você executar isso diretamente, tudo será perfeitamente executado, mas se você executar o outro arquivo para onde está importando o script example.py, notará que a chamada da função greet não foi executada. Por que é que?
Isso ocorre por causa do if condicional. O que a condicional faz é verificar se o arquivo está sendo executado diretamente ou não. Se estiver sendo executado diretamente, main seria atribuído à variável especial name que tornará esta condição verdadeira e tudo dentro da condição será executado normalmente.
Mas, por outro lado, se você estiver importando-o em outro arquivo e executando-o indiretamente a partir daí, a instrução da condição não será verdadeira e qualquer coisa que tenha sido colocada dentro da condicional não será executada.
Este é o significado desta declaração condicional. Impede que o interpretador Python execute automaticamente linhas de código desnecessárias quando importamos um script como um módulo.
No entanto, podemos chamar essas funções mesmo quando importamos um script como um módulo. Por exemplo:
import example example.greet()
Desta forma podemos perfeitamente chamar qualquer função do módulo importado mesmo quando a condicional não for satisfeita.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3