[Python-Dev] anomaly

Florian Bruhin me at the-compiler.org
Mon May 11 09:40:53 CEST 2015


* Mark Rosenblitt-Janssen <dreamingforward at gmail.com> [2015-05-10 11:34:52 -0500]:
> Here's something that might be wrong in Python (tried on v2.7):
> 
> >>> class int(str): pass
> 
> >>> int(3)
> '3'

What's so odd about this? "class int" is an assignment to "int", i.e.
what you're doing here is basically:

int = str
int(3)  # really str(3)

* Mark Rosenblitt-Janssen <dreamingforward at gmail.com> [2015-05-10 19:14:18 -0500]:
> In case the example given at the start of the thread wasn't
> interesting enough, it also works in the other direction:
> 
> >>> class str(int):  pass
> 
> >>> str('2')
> 2  #<----- an integer!!!

Same thing. You're shadowing the builtin.

Florian

-- 
http://www.the-compiler.org | me at the-compiler.org (Mail/XMPP)
   GPG: 916E B0C8 FD55 A072 | http://the-compiler.org/pubkey.asc
         I love long mails! | http://email.is-not-s.ms/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/python-dev/attachments/20150511/04d69d80/attachment-0001.sig>


More information about the Python-Dev mailing list