The idea is interesting but not unambigously realizable. Maybe one should introduce some extra syntax for disambiguation and thereby generalize the proposal.
as <specifier>: # list of definitions and assignments Proposed specifiers are dict, tuple, *, ** and func. - as dict: conversion into a dictionary Example: d = as dict: doc = "I'm the 'x' property." def fget(self): return self.__x We would get d = {"doc":"I'm the 'x' property.", "fget":fget} - as **: conversion into keyword-arguments. This comes close in spirit to the original proposal Example: x = property(): as **: doc = "I'm the 'x' property." def fget(self): return self.__x - as tuple: conversion into a tuple. Preserving order. Example: t = as tuple: doc = "I'm the 'x' property." def fget(self): return self.__x >>> t[1] <function fget at 0x00EC4770> - as *: conversion into an argument tuple. Preserving order. Example: x = property(): as *: def get_x(): return self.__x def set_x(value): self.__x = value del_x = None doc = "I'm the 'x' property." - as func(*args,**kw): Anoymus functions. Replacement for lambda. Support for arbirtray statements? Examples: p = as func(x,y): x+y p(1,2) i,j = 3,4 if (as func(x,y): x+y) (i,j) > 10: print True Ciao, Kay -- http://mail.python.org/mailman/listinfo/python-list