Search code examples
javascriptpythonstringdictionarymodulo

Python notation question: string modulus?


I've come across a snippet of Python code that looks like this:

code = 'foo' % bar

...where foo is a string of JavaScript code that's being used in a callback, and bar is a dictionary.

Can someone explain what this means?


Solution

  • The string is beeing formatted using the old %-formatting style.

    The string likely contains sequences like %(foo)s that are being replaced by the dictionary. An example would be:

    text = "Hello %(adjective)s World" % {"adjective": "beautiful"}
    

    This would result in Hello beautiful World.

    The text inside the parentheses denotes the keyword and the s after that denotes that it is a string. An alternative would be d for integers.

    However using this method is not recommended anymore since f-strings and the str.format method provide better functionality.

    Read more here.