standard - python pep8 function comments




¿Cuál es la diferencia entre__init__.py y__main__.py? (2)

__init__.py , entre otras cosas, etiqueta un directorio como un directorio de python y le permite establecer variables en un nivel de paquete.

__main__.py , entre otras cosas, se ejecuta si intenta ejecutar un grupo comprimido de archivos de Python. __main__.py permite ejecutar paquetes.

Ambas respuestas se obtuvieron de las respuestas que vinculaste. ¿Hay algo más que no entendiste sobre estas cosas?

Esta pregunta ya tiene una respuesta aquí:

Conozco estas dos preguntas sobre los archivos __init__.py y __main__.py .

¿Qué es __init__.py para?

¿Qué es __main__.py?

Pero realmente no entiendo la diferencia entre ellos.


__init__.py se ejecuta cuando importa un paquete en un programa Python en ejecución. Por ejemplo, import idlelib dentro de un programa, ejecuta idlelib/__init__.py , que no hace nada ya que su único propósito es marcar el directorio idlelib como un paquete. Por otro lado, tkinter/__init__.py contiene la mayor parte del código tkinter y define todas las clases de widgets.

__main__.py se ejecuta como '__main__' cuando ejecuta un paquete como programa principal. Por ejemplo, python -m idlelib en una línea de comando ejecuta idlelib/__main__.py , que inicia Idle. De forma similar, python -m tkinter ejecuta tkinter/__main__.py , que tiene esta línea:

from . import _test as main

En este contexto,. Es tkinter , por lo que importa . importa tkinter , que ejecuta tkinter/__init__.py . _test es una función definida dentro de ese archivo. Por lo tanto, llamar a main() (siguiente línea) tiene el mismo efecto que ejecutar python -m tkinter.__init__ en la línea de comandos.







python-3.x