On 2014-07-06 17:52, Steven D'Aprano wrote: > I have a monkey-patched version of dir() which takes a second > argument, a glob, to filter the list of names returned: > > py> len(dir(os)) # Too much! > 312 > py> dir(os, 'env') > ['_putenv', '_unsetenv', 'environ', 'environb', 'getenv', > 'getenvb', 'putenv', 'supports_bytes_environ', 'unsetenv'] > py> dir(os, 'env*') > ['environ', 'environb']
And for those of us that don't have Steven's monkey-patched dir() call, I tend to do it with a list comprehension: >>> [s for s in dir(obj) if 'env' in s] {output here} This works nicely for even more complex tests: >>> [s for s in dir(obj) if not s.startswith('_')] {list of public properties/methods} >>> [s for s in dir(obj) if callable(getattr(obj, s))] {list of callable attributes} >>> [s for s in dir(obj) if isinstance(getattr(obj, s), basestring)] {list of string attributes} -tkc -- https://mail.python.org/mailman/listinfo/python-list