For global functions
dir() is the command to use (as mentioned in most of these answers), however this lists both public functions and non-public functions together.
For example running:
>>> import re
Returns functions/classes like:
'__all__', '_MAXCACHE', '_alphanum_bytes', '_alphanum_str', '_pattern_type', '_pickle', '_subx'
Some of which are not generally meant for general programming use (but by the module itself, except in the case of DunderAliases like
__file__ ect). For this reason it may not be useful to list them with the public ones (this is how Python knows what to get when using
from module import *).
__all__ could be used to solve this problem, it returns a list of all the public functions and classes in a module (those that do not start with underscores –
Can someone explain __all__ in Python? for the use of
Here is an example:
>>> import re
['match', 'fullmatch', 'search', 'sub', 'subn', 'split', 'findall', 'finditer', 'compile', 'purge', 'template', 'escape', 'error', 'A', 'I', 'L', 'M', 'S', 'X', 'U', 'ASCII', 'IGNORECASE', 'LOCALE', 'MULTILINE', 'DOTALL', 'VERBOSE', 'UNICODE']
All the functions and classes with underscores have been removed, leaving only those that are defined as public and can therefore be used via
__all__ is not always defined. If it is not included then an
AttributeError is raised.
A case of this is with the ast module:
>>> import ast
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'ast' has no attribute '__all__'