Bill wrote:
Chris Angelico wrote:
Decorators are fairly straight-forward if you understand higher-order
functions.  <snip>

ChrisA


I was just minding my own business, and thought to write my first decorator for a simple *recursive* function f. The decorator WORKS if f does not make a call to itself (it really wasn't).

Using the (PyCharm) debugger, I determined that my inner function that was calling my wrapped (Fibonacci sequence) function but wasn't returning anything to the invoking environment. I fixed it for the sake of a good, if costly, lesson. Not much of a wrapper, but it "works". A version which merely prints a tab before the function call, instead of a row of asterisks produces output which is more interesting to look at.

def wrap(func):
    def inner(*args, **kwargs):
        print('*'*20)
        a= func(*args, **kwargs)
        print(a)
        print('*'*20)
        return a
    return inner


Bill

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to