Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #45833

Non-identifiers in dictionary keys for **expression syntax

Date 2013-05-23 14:52 -0400
From Matthew Gilson <m.gilson1@gmail.com>
Subject Non-identifiers in dictionary keys for **expression syntax
Newsgroups comp.lang.python
Message-ID <mailman.2029.1369335137.3114.python-list@python.org> (permalink)

Show all headers | View raw


[Multipart message — attachments visible in raw view] - view raw

This is a question regarding the documentation around dictionary 
unpacking.  The documentation for the call syntax 
(http://docs.python.org/3/reference/expressions.html#grammar-token-call) 
says:

"If the syntax **expression appears in the function call, expression 
must evaluate to a mapping, the contents of which are treated as 
additional keyword arguments."

That's fine, but what is a keyword argument?  According to the glossary 
(http://docs.python.org/3.3/glossary.html):

/"keyword argument/: an argument preceded by an identifier (e.g. name=) 
in a function call or passed as a value in a dictionary preceded by **."

As far as I'm concerned, this leads to some ambiguity in whether the 
keys of the mapping need to be valid identifiers or not.

Using Cpython, we can do the following:

      def func(**kwargs):
           print kwargs

      d = {'foo bar baz':3}

So that might lead us to believe that the keys of the mapping do not 
need to be valid identifiers.  However, the previous function does not 
work with the following dictionary:

     d = {1:3}

because not all the keys are strings.  Is there a way to petition to get 
this more rigorously defined?

Thanks,
~Matt



Back to comp.lang.python | Previous | NextNext in thread | Find similar | Unroll thread


Thread

Non-identifiers in dictionary keys for **expression syntax Matthew Gilson <m.gilson1@gmail.com> - 2013-05-23 14:52 -0400
  Re: Non-identifiers in dictionary keys for **expression syntax Neil Cerutti <neilc@norwich.edu> - 2013-05-23 19:20 +0000
    Re: Non-identifiers in dictionary keys for **expression syntax Ethan Furman <ethan@stoneleaf.us> - 2013-05-23 12:37 -0700
    Re: Non-identifiers in dictionary keys for **expression syntax Matthew Gilson <m.gilson1@gmail.com> - 2013-05-23 16:49 -0400

csiph-web