A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2010-April/099470.html below:

[Python-Dev] Very Strange Argument Handling Behavior

[Python-Dev] Very Strange Argument Handling BehaviorMichael Foord fuzzyman at voidspace.org.uk
Sat Apr 17 01:42:07 CEST 2010
On 17/04/2010 01:38, Steve Holden wrote:
> Raymond Hettinger wrote:
>    
>> On Apr 16, 2010, at 2:42 PM, Daniel Stutzbach wrote:
>>      
>>> IIRC, there's a performance hack in dictobject.c that keeps track of
>>> whether all of the keys are strings or not.  The hack is designed so
>>> that lookup operations can call the string compare/hash functions
>>> directly if possible, rather than going through the slower PyObject_
>>> functions.
>>>
>>> Consequently, validating **kwds should be cheap.
>>>
>>>        
>> Good thinking.
>>
>> That would definitely be better than scanning the full dict on every call.
>>
>>      
> I'm sure we wouldn't want to go so far as to inhibit this. (Py 3.1)
>
>    
>>>> def f(**kwargs):
>>>>          
> ...   kwargs[1] = "dummy"
> ...   print(kwargs)
> ...
>    
>>>> f(this="Guido", that="Raymond", the_other="Steve")
>>>>          
> {'this': 'Guido', 1: 'dummy', 'the_other': 'Steve', 'that': 'Raymond'}
>    
>>>>          
> Or would we?
Nobody is proposing barring that.

>   If it's OK to mutate kwargs inside the function to contain
> a non-string key, why isn't it OK to pass a non-string key in?
>
>    
Because they are completely different operations.

Michael

> I understand that it couldn't be generated using keyword argument
> syntax, but I don't see why we discriminate against f(**dict(...)) to
> limit it to what could be generated using keyword argument syntax. Is
> this such a big deal?
>
> regards
>   Steve
>    


-- 
http://www.ironpythoninaction.com/

More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4