Si utilizza descrittori e decoratori per fare riferimento dipendenze esterne, e gli ambiti per specificare come riutilizzare gli oggetti.
Dipendenze possono essere referenziati da tipi e annotazioni opzionali.
Non è richiesta alcuna configurazione, ma advanced configurazione in codice è possibile.
La maggior parte degli altri strumenti di iniezione python dipendenza, come PyContainer o primavera Python, sono le porte di altre lingue (Java). Così si basano su metodi di iniezione di dipendenza specifici per le lingue staticamente tipizzati.
Python non è Java, e quindi i modelli e le tecniche di programmazione, che sembrano proprio e utilizzabile in una lingua, può essere difficile in un altro.
Iniettare è stato creato per fornire un modo pythonic di iniezione di dipendenza, utilizzando la funzionalità Python specifico.
Terminologia utilizzata in iniezione è stata intenzionalmente reso simile a Guice, ma l'architettura interna è diverso
Caratteristiche :.
- Fast, solo 2-3 volte più lento che istanza diretta.
- modo normale di oggetti istanziano, Class (* args, ** kwargs).
- L'iniezione di argomenti in funzioni e metodi.
- Riferimento dipendenze per tipologia e annotazioni opzionali.
- Il legame con callable, istanze e metodi non legati (vedi [nvokers).
- Richiesta ambito middleware per applicazioni WSGI e Django (richiede Python2.5 +).
- Nessuna configurazione richiesta a tutti.
- configurazione flessibile Avanzata possibile
- Due metodi di iniezione, un descrittore e un decoratore
- Il supporto per eredità passando inject.super come valore kwarg predefinito
- invokers per richiamare i metodi non legati (freddo per gli ascoltatori)
- iniezioni parziali, quando solo alcuni argomenti vengono iniettati:
- Scopes: applicazione (Singleton), richiesta, noscope
- Facile integrazione in progetti esistenti.
Cosa c'è di nuovo in questa versione:.
- Rimosso file IntelliJ IDEA
I commenti non trovato