[Python-Dev] Re: Extended Function syntax

Arne Koewing ark@gmx.net
Wed, 29 Jan 2003 18:32:56 +0100


Guido van Rossum <guido@python.org> writes:

>> However this could work:
>> 
>> class Foo(object):
>>     myprop = property:
>> 	"""A computed property on Foo objects."""
>> 	def __get__(self):
>> 	    return ...
>> 	def __set__(self, value):
>> 	    ...
>> 	def __delete__(self):
>> 	    ...
>> 
>> This would call property() with the results of parsing the indented block.
>> Not sure yet this is a good idea, but it could have many other (possibly
>> good, possibly harmful) uses.
>
> Funny, I had a vision of something very similar this morning in the
> shower. :-)
>
> The problem is that this is a *very* radical change to the grammar,
> and I'm not sure I can rigorously define how the switch from
> "expression parsing mode" to "block parsing mode" should work.

If we have:

def f(x) [function_that_takes_f]:
    pass

what about an block-variant:

blockdef my_thing [function_that_takes_dict_of_the_block_definition]
       ...block...


so we could write:
blockdef myprop [property]:
      	def __get__(self):   
 	    return ...
 	def __set__(self, value):
 	    ...
 	def __delete__(self):
 	    ...

(replace blockdef with your favorite new keyword...)