In Python, String and Unicode objects have one special operator: the % operator. With that operator, strings can be formatted with format codes. Formatting is given syntax format % values, where format is a string with format codes that are replaced with values. When value is any kind of mapping, formats must include parenthesis that contain a key. An item is fetched from directory with key or __getitem__ is overloaded with key. In this example, Eval's __getitem__ returns the result of eval(key).
1 2 3 4 5 6 7 8 9 10
class Eval: def __getitem__(self, key): return eval(key) number = 19 text = "python" print "%(text.capitalize())s %(number/9.0).1f rules!" % Eval() #Python 2.1 rules!
This solution can be useful because in order to do evaluations inside strings, strings must be constructed from many pieces. An alternative solution:
number = 19 text = "python" print text.capitalize()+" "+str(round(number/9.0,1))+" rules!"