Puoi anche __init__.py?.  3 cose che __init__.py può fare per te |  di Louis Chan |  Febbraio 2024

 | Intelligenza-Artificiale

Lanciare magie usando __init__.py

Ogni volta che provi a importare il tuo codice da una cartella diversa, inserisci un file vuoto __init__.py. È quasi diventata una memoria muscolare per la maggior parte degli sviluppatori Python, principianti o maghi. Ma lo sappiamo davvero? __init__.py?

In questo post del blog, approfondiamo come __init__.py funziona e tre modi non vuoti __init__.py ci aiuta come sviluppatori Python.

Cosa è __init__.py?

__init__.py è un file Python che dice all'interprete Python che la cartella deve essere trattata come un pacchetto.

A differenza dei linguaggi compilati come C e C++, dove le dipendenze devono essere precompilate prima di essere utilizzate, l'interprete di Python recupera le dipendenze al volo. Segnalare a Python che una cartella contiene codice che verrà utilizzato altrove è attraverso __init__.py.

Quindi, pensaci __init__.py come portinaio. Trasforma la tua cartella in un pacchetto Python importabile.

Immagine creata dall'autore

Ma __init__.py è anche più di questo. Quando crei una classe in Python, spesso dovrai creare un file __init__ anche la funzione. Ciò definirebbe come dovrebbe essere costruito un oggetto ed è la prima cosa da eseguire quando viene creato un oggetto della classe. Allo stesso modo, __init__.py è il costruttore di un pacchetto Python. Verrà eseguito per primo ogni volta che il pacchetto verrà importato. Un vuoto __init__.py significa vuoto __init__ metodo di costruzione per il tuo pacchetto Python. Va bene, ma non significa che non possiamo fare di più.

Utilizzo __init__.py with Caution

Da __init__.py è il costruttore di un pacchetto Python, dobbiamo essere cauti su dove inseriamo __init__.py.

Se abbiamo una cartella denominata datetime dove abbiamo alcune funzioni di utilità personalizzate per l'elaborazione del formato della data:

# ./datetime/utils.py

def increment_date(date: int, increment: int) -> int:
"""Increate timestamp by milliseconds"""
return date + increment

Aggiungiamo quindi a __init__.py in modo da poter importare il codice nel nostro main.py:

Fonte: towardsdatascience.com

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *