python variable Por que usar def main()?




variable naming conventions python (4)

se o conteúdo de foo.py

print __name__
if __name__ == '__main__':
    print 'XXXX'

Um arquivo foo.py pode ser usado de duas maneiras.

  • importado em outro arquivo: import foo

Neste caso, __name__ é foo , a seção de código não é executada e não imprime XXXX .

  • executado diretamente: python foo.py

Quando executado diretamente, __name__ é o mesmo que __main__ e o código nessa seção é executado e imprime XXXX

Um do uso desta funcionalidade para escrever vários tipos de testes de unidade dentro do mesmo módulo.

Duplicata Possível:
O que faz if __name__== "__main__" faz?

Eu vi alguns exemplos de código e tutoriais que usam

def main():
    # my code here

if __name__ == "__main__":
    main()

Mas por que? Existe alguma razão para não definir suas funções na parte superior do arquivo e, em seguida, apenas escrever código sob ele? ou seja

def my_function()
    # my code here

def my_function_two()
    # my code here

# some code
# call function
# print(something)

Eu só me pergunto se há alguma rima para o principal?


Sem o sentinela principal, o código seria executado mesmo se o script fosse importado como um módulo.


" O que significa if __name__==“__main__”: do? " Já foi respondido.

Ter uma função main() permite chamar sua funcionalidade se você import o módulo. O benefício principal (sem trocadilhos) disso (IMHO) é que você pode testar a unidade.


Considere o segundo roteiro. Se você importá-lo em outro, as instruções, como "nível global", serão executadas.







coding-style