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