On 4/14/2010 11:19 AM, J. Cliff Dyer wrote:
On Wed, 2010-04-14 at 15:51 +0100, john maclean wrote:
self.assertEqual(platform.__builtins__.__class__, dict,
"platform.__class__ supposed to be dict")
self.assertEqual(platform.__name__, 'platform' )

The preferred spelling for:

     platform.__builtins__.__class__

would be

     type(platform.__builtins__)

Agreed

It's shorter and easier to read, but essentially says the same thing.

You can also use it on integer literals, which you can't do with your
syntax:

     >>>  type(1)
     <type 'int'>
     >>>  1.__class__
     ...
     SyntaxError: invalid syntax

Add the needed space and it works fine.

>>> 1 .__class__
<class 'int'>

A possible use of literal int attributes is for bound mehods:

>>> inc = 1 .__add__
>>> inc(3)
4
>>> inc(3.0)
NotImplemented

Whereas def inc(n): return n+1 is generic and would return 4.0.

Terry Jan Reedy

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

Reply via email to