[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...)