[Python-Dev] method decorators (PEP 318) (original) (raw)

Paul Prescod paul at prescod.net
Sat Mar 27 18:00:27 EST 2004


Russell Finn wrote:

Mike Rovner wrote:

I came up with nearly the same idea after reading Guido's original post, except that I recommend using the existing dictionary literal syntax: def func (args): { author: "Guido", deprecated: True} '''doc''' pass Perhaps this was just a typo in Mike's post.

What should happen in this case?

mod_author = "Guido" author = 5

def func(self, author, mod_author): { author: mod_author}

func("Paul", "Bill")

Does the func get:

func.author = "Guido"

or

func.5 = "Guido"

or

func.Paul = "Bill"

or

...

A better solution is:

def func(self, author, mod_author){ author: mod_author }:

Although this particular example is confusing because of the reused argument names, it is still reasonably clear that the decorator is evaluated at definition time not function run time.

Paul Prescod



More information about the Python-Dev mailing list