logo

__nome__ em Python

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.