O nome do script ou módulo Python atualmente em execução é armazenado na variável especial __name__ do Python. O Python 3.0 introduziu a variável __name__, que está ausente no Python 2. x. O script Python atual ou o valor do módulo, __main__, é atribuído à variável __name__ enquanto está sendo executado.
O que _nome_ significa?
Python possui uma variável integrada chamada __name__ que armazena o nome do script ou módulo que está em execução no momento. O script ou nome do módulo é armazenado na variável __name__, a menos que o módulo atual esteja em execução, caso em que o valor __main__ é atribuído a ele.
Conseqüentemente, quando um script Python está sendo executado, o valor de sua variável __name__ deve sempre ser __main__ se for importado para outro script Python. Caso contrário, o nome do módulo apareceria.
Exemplo :
Para entender melhor isso, vamos usar um exemplo. Faça um script em Python chamado testing.py, e anexe o seguinte código a ele:
# Code to define a function def anything(): print('Value of the __name__ : ', __name__) anything()
Saída:
Value of the __name__ : __main__
Explicação:
O script é executado imediatamente como o programa principal, conforme indicado pela saída 'Valor do nome: principal'. Em Python, o valor da variável __name__ do script é automaticamente definido como '__main__' quando o script é executado diretamente. Esta saída confirma que o script está sendo executado diretamente em vez de importado como um módulo para outro script
Vamos agora construir outro script Python chamado rede.py e importe o anterior para ele.
Exemplo :
# importing testing.py import testing testing.anything()
Saída:
Value of the __name__ : testing
Explicação:
testando. Anything() é o método executado quando o script testing.py é importado para outro script Python usando teste de importação. Nesta situação, o nome do módulo, neste caso 'testing', é definido como o valor da variável __name__ em testing.py em vez de '__main__.' Por esse motivo, a saída do teste. qualquer coisa() é 'Valor do __name__: teste.' Isso ilustra como a execução direta do script versus a importação como um módulo afeta o valor da variável __name__.
Usando a condição if name == main :
Nós usamos o declaração if e a condição __nome__ == __principal__ declarar que certo código Python deveria ser apenas executado quando o script é executado diretamente .
Exemplo :
# importing testing.py import testing if __name__ == __main__: testing.anything()
Nesse caso, a capacidade do módulo ou script atual de ser executado de forma independente é verificada usando a string __main__. Para indicar ao interpretador Python que uma palavra-chave na variável __name__ é reservada ou especial, existem dois sublinhados em cada lado do termo.
Exemplo de código para nome em Python:
Como dito antes, quando executamos um arquivo de código, o código é executado diretamente – nem mesmo é importado para outro arquivo – e como resultado, o valor da variável __name__ muda para __main__.
# defining a function def anything(): print('It is a function in the ScriptP1.') if __name__=='__main__': anything() print('Called from the ScriptP1.') else: print('ScriptP1 is imported into another file.')
Saída:
It is a function in the ScriptP1. Called from the ScriptP1.
Explicação:
A função Anything() especificada no script ScriptP1 está sendo executada diretamente como o programa principal, conforme mostrado pela saída 'É uma função no ScriptP1.' seguido por 'Chamado do ScriptP1.' Quando o script é executado diretamente em Python, a variável __name__ é definida como '__main__'; conseqüentemente, a condição if __name__=='__main__': é avaliada como True, chamando a função Anything(). A instrução print a seguir verifica se o script está realmente sendo executado diretamente.
Agora, vamos criar um novo arquivo de script Python chamado ScriptP2.py, importar ScriptP1.py para ele e tentar chamar o método ScriptP1 Anything().
Código: O ScriptP2.py o código é fornecido aqui:
import ScriptP1 if __name__=='__main__': ScriptP1.anything() print('Called from the ScriptP2.')
Saída:
ScriptP1 is imported into another file. It is a function in the ScriptP1. Called from the ScriptP2.
Explicação:
O script Python fornecido mostra como importar o módulo 'ScriptP1' para o script ativo. O método 'anything()' está presente em 'ScriptP1' e é chamado no script principal. Esta função é chamada e o script gera 'Called from the ScriptP2.' para indicar que a chamada de função foi concluída. Este fluxo de eventos indica que a função especificada em 'ScriptP1' estava acessível e executada com sucesso no contexto do script que está sendo executado agora, que é identificado como 'ScriptP2'.
caractere java para int
Quando a instrução de importação para ScriptP1 foi executada dentro de ScriptP2, a variável __name__ tinha o valor ScriptP1 (o nome do módulo); mas, como o ScriptP2 foi o primeiro script a ser executado, agora ele terá o valor __main__.
Imprimindo o valor de __name__ :
Vamos imprimir o valor da variável __name__ em cada etapa da execução para ajudar você a entendê-la melhor.
Exemplo : O código-fonte do script Python ScriptP1.py é fornecido abaixo:
print('Value or the variable __name__ : ' + __name__)
Saída:
Value or the variable __name__ : __main__
Explicação:
A amostra de código Python fornecida gera o valor da variável __name__, que, quando o script é executado diretamente, é avaliado como 'main'. Isso significa que quando o script é iniciado diretamente, o bloco de código que vem após a condição if __name__ == '__main__': será executado em vez de ser importado como um módulo para outro script. Esse tipo de comportamento é frequentemente usado para distinguir entre executar um script como aplicativo principal e importá-lo para outro script como um módulo.
Exemplo 2: E aqui está o código fonte do script ScriptP2.py:
# importing the file ScriptP1.py import ScriptP1 print('Value or the variable __name__ : ' + __name__)
Saída:
Value or the variable __name__ : __main__
Explicação:
O script Python fornecido usa a instrução import para importar o arquivo 'ScriptP1.py. 'Quando é executado, 'main' é impresso como o valor da variável __name__. Isso significa que em vez de ser importado como um módulo para outro script, o script está sendo executado diretamente como o aplicativo principal. Ao executar scripts Python, este é o comportamento usual; o contexto de execução do script é refletido na variável __name__.
Resumo :
Na maioria das linguagens de programação, o método ou função principal é geralmente utilizado como o ponto em que qualquer programa é executado. Mas e quanto ao Python? A execução de um programa Python (script) normalmente começa na linha zero ou no nível de indentação 0 do programa. A criação de uma variável __name__, entretanto, acontece antes da execução de um programa Python. Esta variável pode ser usada para substituir o método principal em Python.