http://stackoverflow.com/questions/1769403/understanding-kwargs-in-python
You can use
**kwargs
to let your functions take an arbitrary number of keyword arguments:>>> def print_keyword_args( **kwargs):
... # kwargs is a dict of the keyword args passed to the function
... for key, value in kwargs . iteritems ( ):
... print "%s = %s" % (key, value)
...
>>> print_keyword_args( first_name="John", last_name="Doe")
first_name = John
last_name = Doe
You can also use the
**kwargs
syntax when calling functions by constructing a dictionary of keyword arguments and passing it to your function:>>> kwargs = {'first_name': 'Bobby', 'last_name': 'Smith'}
>>> print_keyword_args( **kwargs)
first_name = Bobby
last_name = Smith
func ( **{ 'type':'Event'})
func ( type='Event')
http://stackoverflow.com/questions/988228/converting-a-string-to-dictionary
How to convert a string to
Starting in Python 2.6 you can use the built-in
ast . literal_eval
:>>> import ast
>>> ast . literal_eval( "{'muffin' : 'lolz ', 'foo ' : 'kitty'}")
{'muffin': 'lolz ', 'foo ': 'kitty'}
This is safer than using
eval
. As its own docs say:>>> help ( ast . literal_eval)
Help on function literal_eval in module ast :
literal_eval( node_or_string)
Safely evaluate an expression node or a string containing a Python
expression. The string or node provided may only consist of the following
Python literal structures: strings, numbers, tuples, lists, dicts, booleans ,
and None.
No comments:
Post a Comment