[Tutor] Why is it invalid syntax to have a particular dictionary value as an argument?

Dave Angel davea at davea.name
Mon Apr 6 21:42:40 CEST 2015


On 04/06/2015 03:20 PM, Emile van Sebille wrote:
> On 4/6/2015 7:54 AM, boB Stepp wrote:
>> Python 2.7.8 (default, Jun 30 2014, 16:03:49) [MSC v.1500 32 bit
>> (Intel)] on win32
>> Type "copyright", "credits" or "license()" for more information.
>>>>> d = {'n': 'Print me!'}
>>>>> d
>> {'n': 'Print me!'}
>>>>> d['n']
>> 'Print me!'
>>>>> def func(d['n']):
>> SyntaxError: invalid syntax
>>>>> def func(d):
>>          print d['n']
>>
>>>>> func(d)
>> Print me!
>>
>> The plain text does not show it, but in the invalid syntax the "[" is
>> highlighted red.
>>
>> Why is it invalid syntax to pass a particular dictionary value in a
>> function? Or does it require a different form to do so?
>
> Maybe this form helps:
>
> Python 2.7.6 (default, Mar 22 2014, 22:59:56)
> [GCC 4.8.2] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
>  >>> d = {'a':'123'}
>  >>> def func(s=d['a']):
> ...   print s
> ...
>  >>> func()
> 123
>

Only if you know that nobody is going to be changing d.

 >>> d = {"a":"123"}
 >>> def func(s=d["a"]):
...     print s
...
 >>> d["a"] = "new value"
 >>> func()
123
 >>>


-- 
DaveA


More information about the Tutor mailing list