summaryrefslogtreecommitdiffstats
path: root/Misc
diff options
context:
space:
mode:
authorTim Peters <tim.peters@gmail.com>2001-09-03 05:47:38 (GMT)
committerTim Peters <tim.peters@gmail.com>2001-09-03 05:47:38 (GMT)
commit5d2b77cf31c5a3cbabc74936831480b9caea3a12 (patch)
treedabb2f29553f94a18e3c5ae96d6f232196415f50 /Misc
parent95c99e57b37ede725af1fdd1ff914c91284e3048 (diff)
downloadcpython-5d2b77cf31c5a3cbabc74936831480b9caea3a12.zip
cpython-5d2b77cf31c5a3cbabc74936831480b9caea3a12.tar.gz
cpython-5d2b77cf31c5a3cbabc74936831480b9caea3a12.tar.bz2
Make dir() wordier (see the new docstring). The new behavior is a mixed
bag. It's clearly wrong for classic classes, at heart because a classic class doesn't have a __class__ attribute, and I'm unclear on whether that's feature or bug. I'll repair this once I find out (in the meantime, dir() applied to classic classes won't find the base classes, while dir() applied to a classic-class instance *will* find the base classes but not *their* base classes). Please give the new dir() a try and see whether you love it or hate it. The new dir([]) behavior is something I could come to love. Here's something to hate: >>> class C: ... pass ... >>> c = C() >>> dir(c) ['__doc__', '__module__'] >>> The idea that an instance has a __doc__ attribute is jarring (of course it's really c.__class__.__doc__ == C.__doc__; likewise for __module__). OTOH, the code already has too many special cases, and dir(x) doesn't have a compelling or clear purpose when x isn't a module.
Diffstat (limited to 'Misc')
-rw-r--r--Misc/NEWS17
1 files changed, 17 insertions, 0 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index 55e2993..a1557f8 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -3,6 +3,23 @@ What's New in Python 2.2a3?
Core
+- The builtin dir() now returns more information, and sometimes much
+ more, generally naming all attributes of an object, and all attributes
+ reachable from the object via its class, and from its class's base
+ classes, and so on from them too. Example: in 2.2a2, dir([]) returned
+ an empty list. In 2.2a3,
+
+ >>> dir([])
+ ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__',
+ '__eq__', '__ge__', '__getattr__', '__getitem__', '__getslice__',
+ '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__le__',
+ '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__repr__',
+ '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__str__',
+ 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove',
+ 'reverse', 'sort']
+
+ dir(module) continues to return only the module's attributes, though.
+
- Overflowing operations on plain ints now return a long int rather
than raising OverflowError. This is a partial implementation of PEP
237. You can use -Wdefault::OverflowWarning to enable a warning for