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):
			value = self.value
			a = kwargs.get("a")
			if isinstance(value, list):
				if a> 10:
					value = str
				else:
					value = float
			print(value(a))
		return inner
		
"____________________________________________________________"

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


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