Я занимаюсь углубленным изучением, пытаясь написать свою собственную версию напоминающего декоратора, прежде чем я посмотрю код других людей. Честно говоря, это больше упражнение в забаве. Однако в ходе игры я обнаружил, что не могу делать что-то, что я хочу, с декораторами.Именованные ключевые слова в декораторах?
def addValue(func, val):
def add(x):
return func(x) + val
return add
@addValue(val=4)
def computeSomething(x):
#function gets defined
Если я хочу сделать, что я должен сделать это:
def addTwo(func):
return addValue(func, 2)
@addTwo
def computeSomething(x):
#function gets defined
Почему я не могу использовать именованные аргументы с декораторов таким образом? Что я делаю неправильно, и вы можете показать мне, как я должен это делать?
Значит, вы говорите, что в декораторах на Python есть нетерпеливая оценка? Какой облом. – wheaties