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