Per le funzioni globali dir()è il comando da usare (come menzionato nella maggior parte di queste risposte), tuttavia questo elenca insieme sia le funzioni pubbliche che quelle non pubbliche.
Ad esempio in esecuzione:
>>> import re
>>> dir(re)
Restituisce funzioni / classi come:
'__all__', '_MAXCACHE', '_alphanum_bytes', '_alphanum_str', '_pattern_type', '_pickle', '_subx'
Alcuni dei quali non sono generalmente pensati per un uso generale della programmazione (ma dal modulo stesso, tranne nel caso di DunderAliases come __doc__, __file__ecc.). Per questo motivo potrebbe non essere utile elencarli con quelli pubblici (questo è il modo in cui Python sa cosa ottenere durante l'utilizzo from module import *).
__all__potrebbe essere usato per risolvere questo problema, restituisce un elenco di tutte le funzioni e classi pubbliche in un modulo (quelle che non iniziano con caratteri di sottolineatura - _). Vedi
Qualcuno può spiegare __all__ in Python? per l'uso di __all__.
Ecco un esempio:
>>> import re
>>> re.__all__
['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']
>>>
Tutte le funzioni e le classi con caratteri di sottolineatura sono state rimosse, lasciando solo quelle che sono definite come pubbliche e possono quindi essere utilizzate tramite import *.
Si noti che __all__non è sempre definito. Se non è incluso, quindi unAttributeError viene sollevato un.
Un caso di questo è con il modulo ast:
>>> import ast
>>> ast.__all__
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'ast' has no attribute '__all__'
>>>