Skip to content

Liste der eingebauten Funktionen, Konstanten, etc. in Python (dir(__builtins__))

Python

Python hat viele eingebaute Funktionen, eingebaute Konstanten und so weiter.

Dieser Artikel Spezifische, wie SIE sterben Liste der integrierten Objekte wie integrierte Funktionen, Konstanten, Typen usw. überprüfen.

  • Überprüfen Sie die offizielle Dokumentation
  • Das builtins-Modul und __builtins__
  • Prüfen Sie mit der eingebauten Funktion dir()

Überprüfen Sie die offizielle Dokumentation

Die eingebauten Objekte sind in der offiziellen Dokumentation beschrieben.

Wenn Sie wissen möchten, welche eingebauten Funktionen verfügbar sind, lesen Sie am besten die offizielle Dokumentation.

In der Auswahlbox oben können Sie Sprache und Version auswählen.

Das builtins-Modul und __builtins__

Das builtins-Modul in der Standardbibliothek bietet Zugriff auf eingebaute Funktionen, Konstanten usw.

Beispielsweise können Sie die eingebaute Funktion len() als builtins.len() aufrufen. Diese beiden sind dasselbe Objekt.

import builtins

print(len('abc'))
# 3

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

print(len)
# 

print(builtins.len)
# 

print(builtins.len is len)
# True

Im Allgemeinen Wann & SIE Das builtins-Modul Nicht verwenden, aber SIE can es verwenden, Wenn SIE Eine Funktion mit demselben Namen implementieren möchten, sterben Eine integrierte Funktion umschließt.

Weitere Informationen finden Sie in der offiziellen Dokumentation unten.

In vielen Implementierungen von Python can SIE das builtins-Modul mit __builtins__ verwenden, ohne es zu importieren.

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

print(__builtins__.len is len)
# True

print(__builtins__ is builtins)
# True

Prüfen Sie mit der eingebauten Funktion dir()

Die eingebaute Funktion dir() is a list with names from Attributes, Methoden usw. des im Argument angegebenen Objekts zurück.

Sie können eine Liste der Namen von eingebauten Objekten, wie etwa eingebauten Funktionen und Konstanten, erhalten, indem Sie das builtins-Modul oder __builtins__ an dir() übergeben.

Um die Ausgabe leichter lesbar zu machen, verwenden Sie pprint.

Beachten SIE, dass SIE in einer Umgebung, in der sich __builtins__ vom builtins-Modul unterscheidet, das builtins-Modul importieren und dir(builtins) anstelle von dir(__builtins__) verwenden sollte.

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']

Dieses Ergebnis variiert je nach Umgebung. Die Ausgabe des obigen Beispiels ist das Ergebnis der Ausführung in Jupyter Notebook (IPython), sodass sie „__IPYTHON__“, „get_ipython“ usw. enthält.

dir() gibt eine Liste von Strings zurück. Es enthält keine Informationen darüber, ob jeder Name eine Funktion oder eine Konstante ist.

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

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

Durch die Verwendung von List Comprehensions und String-Methoden können Sie beispielsweise nur Kleinbuchstaben extrahieren, die nicht mit ‚_‘ beginnen, oder nur solche, die mit ‚Error‘ oder ‚Warning‘ enden.

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']

Wie oben erwähnt, wenn Sie nur wissen möchten, welche eingebauten Funktionen Python hat, können Sie die offizielle Dokumentation lesen, aber wenn Sie überprüfen möchten, ob ein String als eingebautes Objekt verwendet wird, können Sie dir(__builtins__) verwenden. .

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

Wenn SIE den Namen eines eingebauten Objekts als Variablennamen verwenden, WIRD dieser überschrieben. Das solltest du nicht tun.