Skip to content

Liste des fonctions intégrées, constantes, etc. en Python (dir(__builtins__))

Python a de nombreuses fonctions intégrées, des constantes intégrées, etc.

Cet article décrit comment vérifier la liste des objets intégrés tels que les fonctions intégrées, les constantes, les types, etc.

  • Consulter la documentation officielle
  • Le module builtins et __builtins__
  • Vérifiez avec la fonction intégrée dir()

Consulter la documentation officielle

Les objets intégrés sont décrits dans la documentation officielle.

Si vous voulez savoir quelles fonctions intégrées sont disponibles, il est préférable de lire la documentation officielle.

Vous pouvez sélectionner la langue et la version dans la zone de sélection en haut à gauche.

Le module builtins et __builtins__

Le module builtins de la bibliothèque standard permet d’accéder aux fonctions intégrées, aux constantes, etc.

Par exemple, vous pouvez appeler la fonction intégrée len() en tant que builtins.len(). Ces deux sont le même objet.

import builtins

print(len('abc'))
# 3

print(builtins.len('abc'))
# 3

print(len)
# 

print(builtins.len)
# 

print(builtins.len is len)
# True

En général, vous n’avez pas besoin d’utiliser le module builtins, mais vous pouvez l’utiliser lorsque vous souhaitez implémenter une fonction portant le même nom qui encapsule une fonction intégrée.

Voir la documentation officielle ci-dessous pour plus de détails.

Dans de nombreuses implémentations de Python, vous pouvez utiliser le module builtins avec __builtins__ sans l’importer.

print(__builtins__.len('abc'))
# 3

print(__builtins__.len is len)
# True

print(__builtins__ is builtins)
# True

Vérifiez avec la fonction intégrée dir()

La fonction intégrée dir() renvoie une liste de noms d’attributs, de méthodes, etc. de l’objet spécifié dans l’argument.

Vous pouvez obtenir une liste de noms d’objets intégrés, tels que des fonctions et des constantes intégrées, en passant le module builtins ou __builtins__ à dir().

Pour rendre la sortie plus facile à lire, utilisez pprint.

Notez que dans un environnement où __builtins__ est différent du module builtins, vous devez importer le module builtins et utiliser dir(builtins) au lieu de dir(__builtins__).

import pprint

print(type(dir(__builtins__)))
# <class 'list'>

print(len(dir(__builtins__)))
# 153

pprint.pprint(dir(__builtins__), compact=True)
# ['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException',
#  'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning',
#  'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError',
#  'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning',
#  'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False',
#  'FileExistsError', 'FileNotFoundError', 'FloatingPointError', 'FutureWarning',
#  'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError',
#  'IndexError', 'InterruptedError', 'IsADirectoryError', 'KeyError',
#  'KeyboardInterrupt', 'LookupError', 'MemoryError', 'ModuleNotFoundError',
#  'NameError', 'None', 'NotADirectoryError', 'NotImplemented',
#  'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning',
#  'PermissionError', 'ProcessLookupError', 'RecursionError', 'ReferenceError',
#  'ResourceWarning', 'RuntimeError', 'RuntimeWarning', 'StopAsyncIteration',
#  'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit',
#  'TabError', 'TimeoutError', 'True', 'TypeError', 'UnboundLocalError',
#  'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError',
#  'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError',
#  'Warning', 'ZeroDivisionError', '__IPYTHON__', '__build_class__', '__debug__',
#  '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__',
#  'abs', 'all', 'any', 'ascii', 'bin', 'bool', 'breakpoint', 'bytearray',
#  'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright',
#  'credits', 'delattr', 'dict', 'dir', 'display', 'divmod', 'enumerate', 'eval',
#  'exec', 'filter', 'float', 'format', 'frozenset', 'get_ipython', 'getattr',
#  'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int',
#  'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map',
#  'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow',
#  'print', 'property', 'range', 'repr', 'reversed', 'round', 'set', 'setattr',
#  'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type',
#  'vars', 'zip']

Ce résultat variera en fonction de l’environnement. La sortie de l’exemple ci-dessus est le résultat de l’exécution dans Jupyter Notebook (IPython), elle inclut donc ‘__IPYTHON__’, ‘get_ipython’, etc.

dir() renvoie une liste de chaînes. Il ne contient aucune information indiquant si chaque nom est une fonction ou une constante.

print(dir(__builtins__)[0])
# ArithmeticError

print(type(dir(__builtins__)[0]))
# <class 'str'>

En utilisant les compréhensions de liste et les méthodes de chaîne, vous pouvez, par exemple, extraire uniquement les chaînes en minuscules qui ne commencent pas par ‘_’, ou uniquement celles qui se terminent par ‘Error’ ou ‘Warning’.

pprint.pprint([s for s in dir(__builtins__) if s.islower() and not s.startswith('_')], compact=True)
# ['abs', 'all', 'any', 'ascii', 'bin', 'bool', 'breakpoint', 'bytearray',
#  'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright',
#  'credits', 'delattr', 'dict', 'dir', 'display', 'divmod', 'enumerate', 'eval',
#  'exec', 'filter', 'float', 'format', 'frozenset', 'get_ipython', 'getattr',
#  'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int',
#  'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map',
#  'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow',
#  'print', 'property', 'range', 'repr', 'reversed', 'round', 'set', 'setattr',
#  'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type',
#  'vars', 'zip']

pprint.pprint([s for s in dir(__builtins__) if s.endswith('Error')], compact=True)
# ['ArithmeticError', 'AssertionError', 'AttributeError', 'BlockingIOError',
#  'BrokenPipeError', 'BufferError', 'ChildProcessError',
#  'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError',
#  'ConnectionResetError', 'EOFError', 'EnvironmentError', 'FileExistsError',
#  'FileNotFoundError', 'FloatingPointError', 'IOError', 'ImportError',
#  'IndentationError', 'IndexError', 'InterruptedError', 'IsADirectoryError',
#  'KeyError', 'LookupError', 'MemoryError', 'ModuleNotFoundError', 'NameError',
#  'NotADirectoryError', 'NotImplementedError', 'OSError', 'OverflowError',
#  'PermissionError', 'ProcessLookupError', 'RecursionError', 'ReferenceError',
#  'RuntimeError', 'SyntaxError', 'SystemError', 'TabError', 'TimeoutError',
#  'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError',
#  'UnicodeError', 'UnicodeTranslateError', 'ValueError', 'ZeroDivisionError']

pprint.pprint([s for s in dir(__builtins__) if s.endswith('Warning')], compact=True)
# ['BytesWarning', 'DeprecationWarning', 'FutureWarning', 'ImportWarning',
#  'PendingDeprecationWarning', 'ResourceWarning', 'RuntimeWarning',
#  'SyntaxWarning', 'UnicodeWarning', 'UserWarning', 'Warning']

Comme mentionné ci-dessus, si vous voulez juste savoir quelles sont les fonctions intégrées de Python, vous pouvez lire la documentation officielle, mais si vous voulez vérifier si une chaîne est utilisée comme objet intégré, vous pouvez utiliser dir(__builtins__) .

print('len' in dir(__builtins__))
# True

Si vous utilisez le nom d’un objet intégré comme nom de variable, il est écrasé. Vous ne devriez pas faire ça.