[Python-Dev] pep 362 - 5th edition

Nick Coghlan ncoghlan at gmail.com
Wed Jun 20 06:39:41 CEST 2012


On Wed, Jun 20, 2012 at 1:28 PM, Yury Selivanov <yselivanov.ml at gmail.com> wrote:
> On 2012年06月19日, at 11:24 PM, Nick Coghlan wrote:
>> The constructor accepts an iterable of Parameter objects rather than a mapping.
>> That's the code I've ended up with:
>>        sig = signature(obj.__func__)
>        return Signature(OrderedDict(tuple(sig.parameters.items())[1:]),
>                         **sig.optional)

Why require a mapping as the argument? A simple iterable of Parameter
objects seems like a more convenient constructor API to me. The
constructor can take care of building the mapping from that internally
via:
 param_map = OrderedDict((param.name, param for param in parameters))
> Still looks better than creating implicit & explicit copies ;)

Indeed :)
>> As for slices support in OrderedDict -- it would return values, so
> it won't solve the problem anyways.

You wouldn't want to do it anyway - while slices happen to not be
hashable *now*, there's no strong reason behind that.
Cheers,
Nick.
-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia


More information about the Python-Dev mailing list

AltStyle によって変換されたページ (->オリジナル) /