Question:
How can I pass a keyword argument to a function when the name contains a dot?


Problem:

Given a function that accepts "**kwargs", e.g.,

def f(**kwargs):

     print(kwargs)


How can I pass a key-value pair if the key contains a dot/period (.)?


The straightforward way results in a syntax error:

In [46]: f(a.b=1)

  Cell In[46], line 1

    f(a.b=1)

      ^

SyntaxError: expression cannot contain assignment, perhaps you meant "=="?


Solution:

Python functions only accepts >valid python names (letters, underscore, and digits except for the first character), a dot is not allowed.

If you want to have a string a.b as parameter, then you must use a dictionary

f(**{'a.b': 1})

# {'a.b': 1}


You can combine this with other parameters:

f(x=2, **{'a.b': 1})

# {'x': 2, 'a.b': 1}


Suggested blogs:

>How to do PHP Decryption from Node.js Encryption

>How to Set up the Android emulator?

>How to Set up the local environment for Angular development?

>Activating Virtual environment in visual studio code windows 11

>Fix webapp stops working issue in Django- Python webapp

>Creating a form in Django to upload a picture from website

>Sending Audio file from Django to Vue

>How to keep all query parameters intact when changing page in Django?

>Solved: TaskList View in Django


Ritu Singh

Ritu Singh

Submit
0 Answers