muru kessan wrote: > Is there a difference between accessing decorators via '@' symbol and > hard coding that ? esp when the function passed to the decorator is a > recursive one?
The difference is not the decorator but the recursive function call. Consider Case 1: @deco def f(): ... f() # calls the decorated function ... f() Case 2: def f() ... f() # calls the undecorated function ... g = deco(f) g() The function call f() will invoke whatever the global name f is bound to a the time of invocation. So Case 3: def f() ... f() # calls the decorated function ... f = deco(f) f() In your code change fib1 = isOddMy(fib) to fib = isOddMy(fib) and the without@ version will produce the same output as the with@ version. -- https://mail.python.org/mailman/listinfo/python-list