Ele usa descritores e decoradores para fazer referência dependências externas e escopos para especificar como a reutilização de objetos.
Dependências pode ser referenciado por tipos e anotações opcionais.
Nenhuma configuração é necessária, mas a configuração avançada no código é possível.
A maioria das outras ferramentas de injeção de dependência python, como PyContainer ou Primavera Python, são portas de outras línguas (Java). Então, eles são baseados em formas de injeção de dependência específicos para linguagens de tipagem estática.
Python não é Java, e assim por padrões e técnicas de programação, o que parece adequada e utilizável em um idioma, pode ser desagradável em outro.
Inject foi criado para fornecer uma maneira Python de injeção de dependência, utilizando a funcionalidade de Python específica.
A terminologia utilizada na injeção foi feita intencionalmente semelhante ao Guice, no entanto, a arquitetura interna é diferente
Características :.
- Rápido, apenas 2-3 vezes mais lenta que a instanciação direta.
- forma normal de objetos instanciar, Class (* args, ** kwargs).
- A injeção de argumentos para funções e métodos.
- Referenciando dependências por tipos e anotações opcionais.
- A ligação ao Callables, instâncias e métodos não ligados (ver [nvokers).
- O escopo de solicitação middleware para WSGI e Django aplicações (requer python2.5 +).
- No configuração necessária a todos.
- A configuração avançada flexível possível
- Dois métodos de injeção, um descritor e um decorador
- Suporte para herança passando inject.super como o valor kwarg padrão
- Invocadores para chamar métodos não ligados (cool para os ouvintes)
- injeções parciais, quando apenas alguns argumentos são injetadas:
- Scopes: application (Singleton), pedido, Noscope
- Fácil integração em projetos existentes.
O que é novo nesta versão:.
- Removido arquivos IntelliJ IDEA
Comentários não encontrado