from functools import wraps

class SomeDecorator:
	
	def __init__(self, value):
		print("Decorator init called")
		self.value = value
		
	def __call__(self, func):
		@wraps(func)
		def inner(*args, **kwargs):
			a = kwargs.get("a")
			if isinstance(self.value, list):
				if a> 10:
					self.value = str
				else:
					self.value = float
			print(self.value(a))
		return inner
		
"____________________________________________________________"

dec = SomeDecorator(value=[float, str])
def f1(*args, **kwargs):
	return "f1"
f1 = dec(f1)	


f1(a=5)
f1(a=12)
f1(a=5)
f1(a=15)