Reinhold Birkenfeld wrote:
> Michele Simionato wrote:
>> As other explained, the syntax would not work for functions (and it is
>> not intended to).
>> A possible use case I had in mind is to define inlined modules to be
>> used as bunches
>> of attributes. For instance, I could define a module as
>>
>> module m():
>>     a = 1
>>     b = 2
>>
>> where 'module' would be the following function:
>>
>> def module(name, args, dic):
>>     mod = types.ModuleType(name, dic.get('__doc__'))
>>     for k in dic: setattr(mod, k, dic[k])
>>     return mod
> 
> Wow. This looks like an almighty tool. We can have modules, interfaces,
> classes and properties all the like with this.
> 
> Guess a PEP would be nice.

Very nice indeed. I'd be more supportive if it was defined as a new statement 
such as "create" with the syntax:

   create TYPE NAME(ARGS):
     BLOCK

The result would be roughly equivalent to:

   kwds = {}
   exec BLOCK in kwds
   NAME = TYPE(NAME, ARGS, kwds)

Such that the existing 'class' statement is equivalent to:

   create __metaclass__ NAME(ARGS):
     BLOCK

Cheers,
Nick.

-- 
Nick Coghlan   |   [EMAIL PROTECTED]   |   Brisbane, Australia
---------------------------------------------------------------
             http://boredomandlaziness.blogspot.com
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to