
On 08/09/2015 09:11 PM, Rob Cliffe wrote:
Comma's could be used to separate things, but it's not that much of a stretch to go from ....
'a' 'b' --> 'ab'
to a = 'a' b = 'b' (% a b) --> 'ab'
But we could have...
(% a, b) If that seems more pythonic.
How does this gain over
def f(*args): return ''.join(args) a='a' b='b' f(a, b)
To make that work in the same way you would also need to add a way to handle string conversion of expressions and formatting. The main gain is the removal of some of the syntax elements and repetive method or function calls that would be required in more complex situations. The point was to boil it down to the minimum that could be done and still not move the expression into the string. Lets look at this example... (% 'My name is ' name ', my age next year is ' (age+1) ', my anniversary is ' {anniversary ':%A, %B %d, %Y'} '.') Using functions and method calls it might become...
f = lambda *args: ''.join(args) _ = format import datetime name = 'Fred' age = 50 anniversary = datetime.date(1991, 10, 12)
f('My name is ', _(name), ', my age next year is ', _(age+1), ... ', my anniversary is ', _(anniversary, ':%A, %B %d, %Y'), '.')
'My name is Fred, my age next year is 51, my anniversary is :Saturday, October 12, 1991.' That isn't that much different and works today. A special format expression would remove some of the syntax elements and make it a standardised and cleaner looking solution. Because it requires the extra steps to define and rename the join and format functions to something shorter, it's not a standardised solution. Having it look the same in many programs is valuable. Also Nicks improvements of combining translation with it might be doable as well. Even with commas, it's still may be enough. Than again if everyone like the expressions in strings, it doesn't matter. Cheers, Ron