[Python-Dev] [PEP 232] Syntactic support for function attributes strawman.

Michael Hudson mwh21@cam.ac.uk
26 Jan 2001 16:40:47 +0000

Following discussion on c.l.py I've just submitted:


which implements a syntax for adding function attributes inline:

>>> def f(a) having (publish=1):
...  print 1
>>> f.publish

It uses an "import-as" like strategy to avoid makeing "having" a
keyword (which interacts a bit badly with error reporting, as it
happens).  Obviously, it would be easy to change "having" to a
different word.

Another idea I had was:

>>> def f(a) having (.publish=1):
...  print 1
>>> f.publish

to emphasize the attributeness of what's going on, but I didn't like
this as much in practice (I always forgot the period!).

Emile van Sebille also suggested

>>> d = {'a':1}
>>> def f(a) having (**d):
...  print 1
>>> f.a

which I haven't implemented, because I didn't really like it, but I
thought I'd mention.

I'll do test suites and documentation in time, but I thought I'd call
in here to check the idea wasn't DOA.  What do you all think?


  surely, somewhere, somehow, in the history of computing, at least
  one manual has been written that you could at least remotely
  attempt to consider possibly glancing at.              -- Adam Rixey