Python __nome__

Resumo : neste tutorial, você aprenderá sobre a __name__variável Python e como usá-la de forma eficaz em módulos.

O que é Python __name__?

Se você examinou o código Python, provavelmente já viu a __name__variável como a seguinte:

if __name__ == '__main__':
    main()Linguagem de código:  Python  ( python )

E você pode se perguntar qual __name__é a variável.

Como a __name__variável tem sublinhados duplos em ambos os lados, ela é chamada de dunder name . O dunder significa pontuação dupla

The __name__é uma variável especial em Python. É especial porque o Python atribui um valor diferente a ele dependendo de como o script que o contém é executado.

Quando você importa um módulo, o Python executa o arquivo associado ao módulo.

Freqüentemente, você deseja escrever um script que possa ser executado diretamente ou importado como um módulo. A __name__variável permite que você faça isso.

Quando você executa o script diretamente, o Python define a __name__variável como '__main__'.

No entanto, se você importar um arquivo como um módulo, o Python definirá o nome do módulo para a __name__variável.

__name__Exemplo de variável Python

Primeiro, crie um novo módulo chamado billingque tenha duas funções: calculate_tax()e print_billing_doc(). Além disso, adicione uma instrução que imprima a __name__variável na tela:

def calculate_tax(price, tax):
    return price * tax


def print_billing_doc():
    tax_rate = 0.1
    products = [{'name': 'Book',  'price': 30},
                {'name': 'Pen', 'price': 5}]

    # print billing header
    print(f'Name\tPrice\tTax')

    # print the billing item
    for product in products:
        tax = calculate_tax(product['price'], tax_rate)
        print(f"{product['name']}\t{product['price']}\t{tax}")


print(__name__)Linguagem de código:  Python  ( python )

Segundo, crie um novo arquivo chamado app.pye importe o billingmódulo:

import billingLinguagem de código:  Python  ( python )

Quando você executa o app.py:

> python app.pyLinguagem de código:  CSS  ( css )

…a __name__variável mostra o seguinte valor:

billingLinguagem de código:  Python  ( python )

Isso significa que o Python executa o billing.pyarquivo quando você importa o módulo de faturamento para o app.pyarquivo.

A __name__variável no app.pyconjunto para o nome do módulo que é billing.

Se você executar o billing.pyscript diretamente:

> python billing.pyLinguagem de código:  CSS  ( css )

… você verá a seguinte saída:

__main__Linguagem de código:  Python  ( python )

Neste caso o valor da __name__variável está '__main__'dentro de billing.py.

Python __nome__

Portanto, a __name__variável permite verificar quando o arquivo é executado diretamente ou importado como módulo.

Por exemplo, para executar a print_billing_doc()função quando ela billing.pyé executada diretamente como um script, você pode adicionar a seguinte instrução ao billing.pymódulo:

if __name__ == '__main__':
    print_billing_doc()Linguagem de código:  Python  ( python )

Terceiro, execute billing.pycomo um script, você verá a seguinte saída:

Name    Price   Tax
Book    30      3.0
Pen     5       0.5Linguagem de código:  Python  ( python )

No entanto, ao executar o app.py, você não verá o ifbloco executado porque a __name__variável não está definida como '__main__'but 'billing'.

Resumo

  • Python atribui '__main__'à __name__variável quando você executa o script diretamente e o nome do módulo se você importa o script como um módulo.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *