#python-3.x #decorator
Вопрос:
Мне нужен декоратор(или что-то подобное), чтобы улучшить некоторые методы. Прямо сейчас методы работают с отдельными элементами(например, метод adding() ниже), но я хочу, чтобы они также работали со списком и списком диктов в качестве входных данных, а также возвращали список/список диктов. Прямо сейчас мой код работает для ввода 1 и 2, но не уверен, что он выглядит питоническим.
input1: 2
output1: 3
input 2:[{"a":1},{"b":2},{"c":3},{"d":4},{"e":5}]
output2:[{"a":2},{"b":3},{"c":4},{"d":5},{"e":6}]
input3(more parameters in args): [{"a":1},{"b":2},{"c":3},{"d":4},{"e":5}],
[{"from":3},{"from":4},{"from":5},{"from":6},{"from":7}]
output3: [{"a":2},{"b":3},{"c":4},{"d":5},{"e":6}],
[{"from":4},{"from":5},{"from":6},{"from":7},{"from":8}]
```
@singleAndListOfDicts
def adding(id,el):
return el 1
def singleAndListOfDicts(func):
@functools.wraps(func)
def wrapper_decorator(*args, **kwargs):
if isinstance(args[1],list):
value = []
temp = list(args)
for elem in args[1]:
temp[1] = list(elem.values())[0]
args = tuple(temp)
value.append(func(*args,**kwargs))
else:
value = func(*args, **kwargs)
return value
return wrapper_decorator
```