[Python] dependency injection con i decoratori

Federico Fissore federico a fsfe.org
Sab 3 Ott 2020 20:07:00 CEST


Federico Cerchiari wrote on 03/10/20 09:33:
> 
> from functools import partial
> from eventuale_modulo_config import landscape
> from mocks import collaboratori as collaboratori_mock
> from validators import collaboratori
> 
> def decoratore_generic(func, collaboratori):
> 	def inner(*args, **kwargs):
> 		...
> 	return inner
> 
> if landscape == "TEST":
> 
>          decoratore = partial(decoratore_generic, collaboratori_mock)
> 
> else:
>          decoratore = partial(decoratore_generic, collaboratori)
> 
> 
> 
> @decoratore()
> def func1():
> 	pass
> 
> 

Ah questa è carina: e potrei mettere l'import dentro l'IF così posso 
evitare di portare i mock in produzione

grazie: mi pare una buona soluzione

federico


Maggiori informazioni sulla lista Python