Breakdown of approaches to PEP318
Terry Reedy
tjreedy at udel.edu
Sun Mar 28 16:15:41 EST 2004
"Sean Ross" <sross at connectmail.carleton.ca> wrote in message
news:7vD9c.318$1A6.114130 at news20.bellglobal.com...
> Here's a breakdown of most of the syntax discussed re: PEP318 using an
> example from python-dev. There are probably several more (I've added
[10]).
> The example applies both function decoration and annotation.
Let me add two more based on a proposal I just posted to PyDev.
> # [5] function attribute dictionary
> def foo(self)[publish_to_web]:
> {spark_rule:"DOC:= HEAD BODY FOOT",
> url="/cgi-bin/directory/directory"}
> "doc string"
> body
# [5B]
def f(self)::
"doc string"
publish_to_web(foo)
{spark_rule:"DOC:= HEAD BODY FOOT",
url="/cgi-bin/directory/directory"}
:
body
> # [6] @function_attribute = ...
> def foo(self)[publish_to_web]:
> @spark_rule="DOC:= HEAD BODY FOOT"
> @url="/cgi-bin/directory/directory"
> "doc string"
> body
# [6B]
def foo(self)::
"doc string"
publish_to_web(foo)
spark_rule="DOC:= HEAD BODY FOOT"
url="/cgi-bin/directory/directory"
:
body
> # [7] :function_attribute:...
> def foo(self)[publish_to_web]:
> :spark_rule:"DOC:= HEAD BODY FOOT"
> :url:"/cgi-bin/directory/directory"
> "doc string"
> body
#[7B] identical to [6B]
The essential idea is that definition-time code should be strictly
separated from run-time code with ':'. If so, no new syntax is *necessary*
(though some can be considered). Assignments in the def-block would be
interpreted much like in class bodies (which are also executed at def
time).
Terry J. Reedy
More information about the Python-list
mailing list