Consider the following string: x = r"\mathjax{{color}}{{text}}" string `x` contains two parameters named `color` and the other named `text`. Currently, python requires that the string class method `str.format` contain key-word arguments for *all *parameters, not just *one* parameter result = r"\mathjax{{color}}{{text}}".format(color = "blue" , text = "Spanish") result = "\mathjax{blue}{Spanish}" Can we change str.format so that it is possible to change only one string parameter, but leave the other parameters alone? # pfr is partially_formatted_result pfr = r"\mathjax{{color}}{{text}}".format(color = "blue") # ERROR! missing parameter `text` result = r"\mathjax{{color}}{{text}}".format(text = "Spanish") # ERROR! missing parameter `color` The implementation requires fewer than ten lines of code in python, probably less than fifty lines in C, or a different implementation language. class str: def format(self, **kwargs): for key in kwargs: x = "{"+key+"}" ostr = kwargs[key].join(self.split(x)) return ostr # output string As an example, everywhere a string contained `{text}` it will now say `*Spanish*` . *Samuel Muldoon* *(720) 653 -2408* *muldoonsamuel@gmail.com <muldoonsamuel@gmail.com>*