1. El programa python se ejecuta secuencialmente de arriba a abajo, mientras que main() en C++ es el punto de entrada del programa.
Por ejemplo, el siguiente código, el resultado es como se muestra en los comentarios. Aunque aquí hay una función principal , la primera salida no es "principal" sino "prueba1" :
#test1
print ("test1")
def Fun():
print ("Fun")
def main():
print ("main")
Fun()
if __name__ == '__main__':
main()
'''
test1
main
Fun
'''
2. Cuando un programa de python se ejecuta como un archivo py, el atributo de archivo __name__ es principal, cuando se importa como un módulo, el atributo de archivo __name__ es el nombre del archivo:
#test.py
def Fun():
print ("Fun")
if __name__ == '__main__':
print ("main")
Fun()
'''
main
Fun
'''
3. Resumen
En C++, la función principal se utiliza como punto de partida de la ejecución; en Python , el primer código que no es de definición de función ni de definición de clase sin sangría se ejecuta primero , como la primera línea del Ejemplo 1.
Para distinguir si un programa se ejecuta o llama activamente, Python introduce la variable __name__ . Cuando se llama al archivo, el valor de __name__ es el nombre del módulo. Cuando se ejecuta el archivo, __name__ es '__main__'
Por lo tanto, a menudo verá el código de otras personas escrito así , y también es una estructura de archivo típica de Python :
#/usr/bin/env/ python #(1) 起始行
#"this is a test module" #(2) 模块文档(文档字符串)
import sys
import os #(3) 模块导入
debug = True #(4) (全局)变量定义
class FooClass (object):
'foo class'
pass #(5) 类定义(若有)
def main():
'test function'
foo = FooClass()
if debug:
print 'ran test()' #(6) 函数定义(若有)
if __name__ == '__main__':
main()
Si el archivo se ejecuta automáticamente, es mejor escribirlo como el ejemplo anterior, no debe haber ningún código ejecutable antes de main , para que el programa comience desde main () y el flujo sea lógico.
Si el archivo se llama como un módulo, puede ejecutarlo secuencialmente de arriba a abajo sin escribir main ().