[Python-Dev] PEP 215 redux: toward a simplified consensus? (original) (raw)
Paul Prescod paul@prescod.net
Mon, 25 Feb 2002 12:31:55 -0800
- Previous message: [Python-Dev] PEP 215 redux: toward a simplified consensus?
- Next message: [Python-Dev] PEP 215 redux: toward a simplified consensus?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
"Barry A. Warsaw" wrote:
>>>>> "MAL" == M <mal@lemburg.com> writes: MAL> 'Joe has ainhispocket.′a in his pocket.' ainhispocket.′ locals() I'd prefer to hijack an existing operator -- one that's unsupported by the string object. Perhaps / or - or & or |
Yuck!
String interopolation should be a compile time action, not an operator. One of the goals, in my mind, is to allow people to string interpolate without knowing what the locals() function does. After all, that function is otherwise useless for most Python programmers (and should probably be moved to an introspection module).
Your strategy requires the naive user to learn a) the $ syntax, b) the magic operator syntax and c) the meaning of the locals() function. Plus you've thrown away the idea that interpolation works as it does in the shell or in Perl/Awk/Ruby etc.
At that point, in my mind, we're back where we started and should just use %. Well have reinvented it with a few small tweaks.
Plus, operator-based evaluation has some security implications that compile time evaluation does not. In particular, if the left-hand thing can be any string then you have the potential of accidentally allowing the user to supply a string that allows him/her to introspect your local variables. That can't happen if the interpolation is done at compile time.
Paul Prescod
- Previous message: [Python-Dev] PEP 215 redux: toward a simplified consensus?
- Next message: [Python-Dev] PEP 215 redux: toward a simplified consensus?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]