----- Original Message -----
From: "Don Parris" <[EMAIL PROTECTED]>
To: <[email protected]>
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 <[EMAIL PROTECTED]> 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.
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?
Okay, I'm done.
Jacob
_______________________________________________
Tutor maillist - [email protected]
http://mail.python.org/mailman/listinfo/tutor