3 ms·
I didn't realize this. I thought things like int's were special. I just tried x = 5 dir(x) Output: ['__abs__', '__add__', '__and__', '__bool__', ...
by nomel 4y ago
I didn't realize this. I thought things like int's were special. I just tried
x = 5
dir(x)
Output:
['__abs__', '__add__', '__and__', '__bool__', ...
- eesmith 4y agoSome Python objects are open for modification, and some are closed. Closed objects don't support this sort of monkey-patching. Integers, strings, and other class objects defined in C are closed for modification. >>> x = 5 >>> x.__add__ = lambda x, y: x*y Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'int' object attribute '__add__' is read-only In that sense they are "special" (or class objects defined in Python are special). But that doesn't make a language with closed classes non-OO.