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.
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.pydef 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