Hi,
Alan said:
Because app() returns the result of append().
But append() returns None, since it modifies the list in place.

This is one of the few features of Python I dislike. It would not have been 
difficult to make these modifier methods return the thing modified.
This style would then allow chained methods.

We do it with strings:

"foobar is a string".rstrip('ing').upper()

because strings are immutable. But we could have done it with other sequence 
types too. Sadly we didn't and history/tradition leaves us with these 
counterintuitive modifiers that return None. It catches everybody out at some 
point...


Is that the same problem with using the len function on sequences and open on 
files, or is it different?

Thanks.

Jim

-----Original Message-----
From: tutor-bounces+james.homme=highmark....@python.org 
[mailto:tutor-bounces+james.homme=highmark....@python.org] On Behalf Of Alan 
Gauld
Sent: Saturday, December 10, 2011 4:16 AM
To: tutor@python.org
Subject: Re: [Tutor] Need Explanation...

On 10/12/11 07:41, sunil tech wrote:

> /def app(x):/
> /     return x.append(100)/
> /
> /p = app(a)/
> /
> /now list holds appended value [1,2,3,100]/
> /but p is empty... why it is?/

Because app() returns the result of append().
But append() returns None, since it modifies the list in place.

This is one of the few features of Python I dislike. It would not have
been difficult to make these modifier methods return the thing modified.
This style would then allow chained methods.

We do it with strings:

"foobar is a string".rstrip('ing').upper()

because strings are immutable. But we could have done it with other
sequence types too. Sadly we didn't and history/tradition leaves us with
these counterintuitive modifiers that return None. It catches everybody
out at some point...


--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

________________________________

This e-mail and any attachments to it are confidential and are intended solely 
for use of the individual or entity to whom they are addressed. If you have 
received this e-mail in error, please notify the sender immediately and then 
delete it. If you are not the intended recipient, you must not keep, use, 
disclose, copy or distribute this e-mail without the author's prior permission. 
The views expressed in this e-mail message do not necessarily represent the 
views of Highmark Inc., its subsidiaries, or affiliates.
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to