quarta-feira, 21 de abril de 2010

python ##### if __name__ == '__main__':

if __name__ == '__main__':

cada modulo possui um atributo __name__, que é o nome dele.

__main__ é a string que contem na váriavel __name__

quando você importa algum modulo
a variável __name__ fica como o nome do modulo caso contrário o nome será __main__

então a condição: if __name__ == '__main__': diz que
se o modulo contiver a string __main__ ele vai rodar o restante do código

exemplo:
>>>a = 'b'
>>>a == 'b'
True
a contém o valor b , a é igual a b portanto, Trueo mesmo acontece com __name__ e __main__
a é variável
'b' é string

__name__ é variável
'__main__' é string

ou seja tudo que contiver entre aspas será string caso contrário será variável,se estiver declarada.


>>> print __name__
__main__

veja outro exemplo:

>>>a = 'b'
>>>if a == 'b':
>>>    print "a contém a string b"
>>>else:
>>>    print "a não contem a string b"
'a contém a string b'

outro exemplo:
o seguinte arquivo main.py, contém o seguinte conteudo:

if __name__ == '__main__':
    print 'este programa está rodando sozinho'
else:
    print 'eu estou sendo importado de outro modulo'

o código fara o seguinte se a string '__main__' contiver em __name__
ele imprime """este programa está rodando sozinho"""
ou seja essa condição somente vai ser verdadeira se vc estiver rodando o código#diretamente como: python main.py
se vc estiver importando o programa como modulo "import main"
a condição if não será verdadeira
portanto print """este programa está rodando sozinho""" não será executado
e fara um salto para else:
que então vai executar print 'eu estou sendo importado de outro modulo'

Nenhum comentário:

Postar um comentário