What's the use-case for this? Have you looked into using functools.partial instead? On Sat, 22 Apr 2023, 06:23 Samuel Muldoon, <muldoonsamuel@gmail.com> wrote:
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>*
_______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-leave@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/2A6RTX... Code of Conduct: http://python.org/psf/codeofconduct/