Al escribir un proyecto enorme, es inevitable realizar algo de encapsulación. Generalmente, se puede realizar la encapsulación de funciones y la encapsulación de clases, pero si hay demasiados módulos de encapsulación, será más conveniente encapsular la biblioteca de utilidades.
- Primero cree una carpeta, el nombre puede elegirlo usted mismo, lo usamos para encapsular una biblioteca, y luego podemos colocar algunos archivos py del módulo de paquete escritos por nosotros mismos en esta carpeta, la estructura del directorio es la siguiente
- Pero para que el sistema python se dé cuenta de que se trata de un paquete, es necesario crear un archivo py de este tipo en la carpeta: archivo __init__.py, y cada nombre de paquete de importación equivale a llamar al archivo __init__.py, que es bastante para ejecutarlo.
Hablemos de otro formulario de importación propenso a errores
Por ejemplo, my_module es un paquete de carpetas que creamos, text1 es un módulo de archivo py empaquetado, hello es una función en el archivo text1.py. Si queremos importar el método en el módulo de la siguiente manera, se producirá un error
import my_module
my_module.test1.hello()
#AttributeError: module 'my_module' has no attribute 'test1'
Solución: Importe todos los módulos del paquete en el archivo __init__.py
from temp import text1
from temp import text2
De esta forma, no será problema llamarlo como antes.
import my_module
my_module.test1.hello()
éxito ~