anomaly

Gary Herron gherron at digipen.edu
Sun May 10 13:28:05 EDT 2015


On 05/10/2015 09:48 AM, Rustom Mody wrote:
> On Sunday, May 10, 2015 at 10:14:36 PM UTC+5:30, Ian wrote:
>> On Sun, May 10, 2015 at 10:34 AM, Mark Rosenblitt-Janssen wrote:
>>> Here's something that might be wrong in Python (tried on v2.7):
>>>
>>>>>> class int(str): pass
>> This defines a new class named "int" that is a subclass of str. It has
>> no relation to the builtin class int.
>>
>>>>>> int(3)
>>> '3'
>> This creates an instance of the above "int" class, which is basically
>> equivalent to calling "str(3)".
>>
>> Were you expecting a different result?
> In C (family) languages int is a keyword
>  From that pov this is completely bizarre

Not really.  Expecting Python to act like C family languages *is* bizarre.

Common Python thought::  "We're all adults here."    If you want to 
override a builtin within your own namespace, who are we to stop you?
Besides, it's still available as __builtins__.int  (unless you've also 
overridden that).

-- 
Dr. Gary Herron
Department of Computer Science
DigiPen Institute of Technology
(425) 895-4418




More information about the Python-list mailing list