On 06/30/2011 11:29 PM, Steven D'Aprano wrote:
The dir() function is designed for interactive use, inspecting objects for
the names of attributes and methods.

Here is an enhanced version that allows you to pass a glob to filter the
names you see:

Comments and improvements welcome.

Having not seen any other comments on it fly by, I thought I'd respond. While in general I like the idea, I'm not sure when I'd go to the effort of bringing the function into my namespace when I could just do something like

  >>> [s for s in dir(...) if test_of_interest(s)]

If it came in as an effortless (i.e. O(1) where I do it once and never again; not an O(n) where n=the number of times I invoke Python) default replacement for dir(), I'd reach for it a lot more readily. I seem to recall there's some environment-var or magic file-name that gets sourced on every startup.

I use the list-comp version on a regular basis:

  # implementation of which magic methods?
  [s for s in dir(foo) if s.startswith('__') and s.endswith('__')]

  # ignore magic methods
[s for s in dir(foo) if not (s.startswith('__') and s.endswith('__'))]

  # constants
  [s for s in dir(foo) if s.isupper()]

  # keywording
  [s for s in dir(foo) if 'bar' in s.lower()]

Anyways, even if it just includes a brief blurb about "and this is how you get it automatically in every Python session" (or a link to the docs on how to do that), it would raise it from "meh" to "nifty".

-tim


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to