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
--
https://mail.python.org/mailman/listinfo/python-list