[Python-Dev] decorators (not transformations) on functions vsclasses

Robert Brewer fumanchu at amor.org
Fri Mar 26 13:23:25 EST 2004


Jewett, Jim J wrote:
>     def bar():
>         pass
>     bar.x = 27
> 
> is not so useful.  
> 
> There is no intermediate "self" scope between function locals 
> and global, so bar itself can't see x.  Functions do not inherit,
> so there won't be any instances or subfunctions that could be
> affected.  Using a function's attributes to control another
> function's execution path is surprising.

True, but you can also write:

>>> def bar():
... 	bar.x = 4
... 	
>>> bar()
>>> bar.x
4

...so bar itself can "see x", just not until the function is evaluated,
in this example. Classes, in this sense, simply differ by being
evaluated when they are declared.


Robert Brewer
MIS
Amor Ministries
fumanchu at amor.org



More information about the Python-Dev mailing list