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í:
- ¿Qué es __main__.py? 5 respuestas
Conozco estas dos preguntas sobre los archivos __init__.py
y __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.