On 2/17/14 12:00 PM, Nir wrote:
k = ['hi','boss']

k
['hi', 'boss']
k= [s.upper for s in k]
k
[<built-in method upper of str object at 0x00000000021B2AF8>, <built-in method 
upper of str object at 0x0000000002283F58>]

Why doesn't the python interpreter just return
['HI, 'BOSS'] ?

This isn't a big deal, but I am just curious as to why it does this.


You have to invoke s.upper, with parens:

    k = [s.upper() for s in k]

In Python, a function or method is a first-class object, so "s.upper" is a reference to the method, "s.upper()" is the result of calling the method.

--
Ned Batchelder, http://nedbatchelder.com

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to