On Mon, 30 May 2011 11:08:23 +0200, Laurent Claessens wrote: > Le 30/05/2011 11:02, Terry Reedy a écrit : >> On 5/30/2011 3:38 AM, Laurent wrote: >> >>> Cool. I was thinking that "5" was the name, but >>> >>> 5.__add__(6) >>> File "<stdin>", line 1 >>> 5.__add__(6) >> >> >> Try 5 .__add__(6) > > What is the rationale behind the fact to add a space between "5" and > ".__add__" ? > Why does it work ?
Because . is an operator just like + * & etc. >>> s = "hello world" >>> s . upper ( ) 'HELLO WORLD' In the case of integer literals, you need the space, otherwise Python will parse 5. as a float: >>> 5. 5.0 >>> 5.__add__ File "<stdin>", line 1 5.__add__ ^ SyntaxError: invalid syntax >>> 5 .__add__ <method-wrapper '__add__' of int object at 0x8ce3d60> -- Steven -- http://mail.python.org/mailman/listinfo/python-list