Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #68573 > unrolled thread

Re: Decorator

Started byPeter Otten <__peter__@web.de>
First post2014-03-20 10:59 +0100
Last post2014-03-20 10:59 +0100
Articles 1 — 1 participant

Back to article view | Back to comp.lang.python

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: Decorator Peter Otten <__peter__@web.de> - 2014-03-20 10:59 +0100

#68573 — Re: Decorator

FromPeter Otten <__peter__@web.de>
Date2014-03-20 10:59 +0100
SubjectRe: Decorator
Message-ID<mailman.8294.1395309599.18130.python-list@python.org>
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.

[toc] | [standalone]


Back to top | Article view | comp.lang.python


csiph-web