[Tutor] Alternative File I/O for Tuples (fwd)

Don Parris webdev at matheteuo.org
Sat Jul 2 08:39:18 CEST 2005


On Fri, 1 Jul 2005 12:09:03 -0500
"Jacob S." <keridee at jayco.net> wrote:

> 
> ----- Original Message ----- 
> From: "Don Parris" <webdev at matheteuo.org>
> To: <tutor at python.org>
> Sent: Thursday, June 30, 2005 12:23 AM
> Subject: Re: [Tutor] Alternative File I/O for Tuples (fwd)
> 
> 
> > On Wed, 29 Jun 2005 14:09:41 -0400
> > Kent Johnson <kent37 at tds.net> wrote:
> >
> >> Don Parris wrote:
> >> > ### playing with wrapfunc (all other args are the same) ###
> >> > wrapfunc=lambda x:wrap_onspace(str(rows), x))
> >> >
> >> > also
> >> > wrapfunc=lambda x:str(wrap_onspace(rows, x)))
> >>
> >> This is way off base. wrap_onspace takes two arguments - the string to
> >> wrap, and the width to wrap to. You are passing it two arguments - the
> >> tuple of tuples to print, and the string to wrap.
> >>
> >> >
> >
> > Success!!!
> >
> >    mbrPhone = open('mbrPhone.txt', 'w')
> >    mbrPhone.write(indent(Results, hasHeader=False, separateRows=False,
> >    prefix='', postfix='', justify='left', wrapfunc=lambda x:str(x)))
> >    mbrPhone.close()
> 
> Just a point.
> 
> You don't need the extra lambda at wrapfunc.
> 
> Writing it as...
> 
> mbrPhone.write(indent(Results, hasHeader=False, separateRows=False,
> prefix='', postfix='',justify='left',wrapfunc=str))
> 
> will work fine.
> 
> A lambda definition is simple, and you already grasp most of the concept, 
> but the above shows a little needed tweaking.
> 

I haven't lambdas very closely yet, but I understand them to be something of
a mini-function (single statement) with no name.  Here, I was simply
sticking to what I saw in the example.


> def a(b,c=d):
>     return somefunc(e)
> 
> is equivalent to
> 
> a = lambda b,c=d: somefunc(e)
> 
> However,
> 
> def wrapfunc(x):
>     return str(x)
> 
> can be shortened to
> 
> wrapfunc = lambda x:str(x)
> 
> which can be shortened even further to
> 
> wrapfunc = str
> 
> I guess the moral of the story is--why bother making wrapfunc a function 
> when you can set it equal to a function -- str --  and it's still the
> same?
> 
Thanks for showing me that - the program still works fine.  When you say the
statement needs tweaking, is this just a matter of style, or does it affect
run-time speed? I'm not timing the program, but didn't happen to notice any
difference.  

Here's screenshots of the old and the new output (if you're interested):
http://matheteuo.org/chaddb/screenshots.html

The old one is using XFce's terminal, the new is Konsole (easier copy/paste
ops).  But it's a huge improvement!

Don
-- 
evangelinux    GNU Evangelist
http://matheteuo.org/                   http://chaddb.sourceforge.net/
"Free software is like God's love - you can share it with anyone anytime
anywhere."


More information about the Tutor mailing list