[Tutor] Question regarding syntax
John Morris
jrmorrisnc at gmail.com
Wed Jul 11 18:31:36 CEST 2007
On 7/11/07, Dave Kuhlman <dkuhlman at rexx.com> wrote:
>
> On Wed, Jul 11, 2007 at 11:03:18AM -0400, John Morris wrote:
> > I'm editing some code from Mailman and seeing:
> >
> > legend = _("%(hostname)s Mailing Lists")
> >
>
> The outer parentheses are a function call. The underscore
> is a name that has a callable as a value, I suppose. I
> believe that the value of the name underscore is the last
> expression evaluated, but I'm not sure.
Right... Thanks, I figured it was something like that but it was not
something I'd encountered.
so if _ = foo
then
bar = _("test") is equivalent to
bar = foo("test")
Mailman is a great product. But that bit of code is not, I think,
> very good code. In Python explicitness is a virtue, and the use of
> the underscore is implicit and is not very Pythonic.
Agreed. The _ stuff is reminiscent of Perl $_, @_ and friends. I'd go miles
personally to
avoid that usage, personally.
I have done the whole 'import this' and mightily strive to grok it all
properly on a regular basis. ;-)
By the way, The inner parentheses are a formatting operation.
> %(x)s will be replaced by the value of x in Example:
>
> vals = {'animal': 'dog'}
> "Rover is a big %(animal)s." % vals
>
> "%(animal)s" will be replaced by "dog". When you use this form,
> the value on the right of the formatting operator must be a
> dictionary. More from the library reference:
>
> When the right argument is a dictionary (or other mapping type),
> then the formats in the string must include a parenthesised mapping
> key into that dictionary inserted immediately after the "%"
> character. The mapping key selects the value to be formatted from
> the mapping. For example:
>
> >>> print '%(language)s has %(#)03d quote types.' % \
> {'language': "Python", "#": 2}
> Python has 002 quote types.
>
> -- http://docs.python.org/lib/typesseq-strings.html
Thanks for this too, though it's more completeness than I needed (just
wondered if _( was "special" usage or what. Kudos on an excellent reply.
So, any really good tutorials on FP and map, filter, zip, lambda ?
I'm trying to wrap my mind around those better...
Thanks much!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20070711/31ab1992/attachment.html
More information about the Tutor
mailing list