• Keine Ergebnisse gefunden

Eingebaute Funktionen

Im Dokument Python Referenz (Seite 86-90)

Die hier beschriebenen Funktionen sind immer im Interpreter verfügbar und sind im Modul

__builtin__ enthalten. Zusätzlich verweist das Attribut __builtins__ eines jeden Moduls normalerweise auf dieses Modul (außer wenn der Interpreter in einer eingeschränkten

Laufzeitumgebung läuft, wie im Abschnitt »Eingeschränkte Ausführung« beschrieben wird).

__import__(name [, globals [, locals [, fromlist]]])

Diese Funktion wird von der import-Anweisung ausgeführt, um ein Modul zu laden. Der String name beinhaltet den Modulnamen, das optionale Dictionary globals definiert den globalen Namensraum und fromlist ist eine Liste von Zielen, die an die from-Anweisung übergeben werden. Die Anweisung import spam z.B. bewirkt den Aufruf von

__import__("spam", globals(), locals(), []) während die Anweisung from spam import foo den Aufruf von __import__("spam", globals(), locals(), ['foo']) bewirkt. Wenn dem Modulnamen ein Paketname vorausgeht wie in foo.bar und fromlist leer ist, wird das entsprechende Modulobjekt zurückgegeben. Falls fromlist nicht leer ist, wird nur das Paket auf der obersten Ebene zurückgegeben.

Diese Funktion dient als einfache Schnittstelle zum Modullader. Sie führt nicht alle Schritte aus, die eine import-Anweisung ausführt (insbesondere werden Namen im lokalen Namensraum, die auf Modulinhalte verweisen, nicht aktualisiert). Diese Funktion kann vom Benutzer neu definiert werden, um ein neues Verhalten für import zu implementieren. Die Standard-Implementierung übergeht sogar den Parameter locals, und globals wird nur verwendet, um den Paketinhalt zu bestimmen. Diese Parameter existieren jedoch, um alternativen Implementierungen von __import__() vollständigen Zugriff auf die globale und lokale Information des Namensraumes zu gestatten, in dem die import-Anweisung auftaucht.

abs(x)

Gibt den Betrag von x zurück.

apply(func, args [, keywords])

Führt einen Funktionsaufruf auf einem aufrufbaren Objekt func durch. args ist ein Tupel mit Positionsargumenten und keywords ist ein Dictionary mit Schlüsselwort-Argumenten.

buffer(object [, offset [, size]])

Erzeugt ein neues Puffer-Objekt. Diese Eigenschaft ist für die Version 1.5.2 von Python nicht dokumentiert. Man konsultiere die Online-Dokumentation für weitere Details.

callable(object)

Ergibt 1, falls object ein aufrufbares Objekt ist, sonst 0.

chr(i)

Konvertiert einen ganzzahligen ASCII-Wert i (0 <= i < 255) in einen String der Länge 1.

cmp(x, y)

Vergleicht x und y und gibt eine negative Zahl zurück, falls x < y ist, 0 falls x == y ist und eine positive Zahl, falls x > y ist. Es können zwei beliebige Objekte verglichen werden, obwohl das Ergebnis bedeutungslos sein kann, wenn die zwei Objekte keine sinnvolle

Vergleichsmethode definieren (z.B. wenn eine Zahl mit einem Dateiobjekt verglichen wird).

coerce(x, y)

Ergibt ein Tupel mit den zu einem gemeinsamen Typ konvertierten Werten von x und y. Siehe Abschnitt »Mathematische Operationen« in Kapitel 3, »Typen und Objeke«.

compile(string, filename, kind)

Übersetzt string in ein Code-Objekt für die Verwendung mit exec oder eval().

filename bezeichnet einen String mit dem Namen der Datei, in der der String definiert wurde. kind hat den Wert 'exec' bei einer Sequenz von Anweisungen und 'single' bei einer einzigen ausführbaren Anweisung.

complex(real [, imag]) Erzeugt eine komplexe Zahl.

delattr(object, attr)

Löscht ein Attribut eines Objektes. attr ist ein String. Identisch mit del object.attr.

dir([object])

Gibt eine sortierte Liste von Attributnamen zurück. Diese Namen stammen aus den Attributen __dict__, __methods__ und __members__ des Objektes. Ohne Argument werden die Namen der aktuellen Symboltabelle zurückgegeben.

divmod(a, b)

Gibt Quotient und Rest einer Division langer Ganzzahlen als Tupel zurück. Bei Ganzzahlen wird der Wert (a / b, a % b) zurückgegeben. Bei Fließkommazahlen wird

(math.floor(a / b), a % b) zurückgegeben.

eval(expr [, globals [, locals]])

Evaluiert einen Ausdruck. expr ist ein String oder ein mit compile() erzeugtes

Code-Objekt. globals und locals bezeichnen den globalen und lokalen Namensraum für die Operation. Falls diese weggelassen werden, wird der Ausdruck im Namensraum der aufrufenden Umgebung ausgewertet.

execfile(filename [, globals [, locals]])

Führt die Anweisungen in der Datei filename aus. globals und locals bezeichnen den globalen und lokalen Namensraum, in denen die Datei ausgeführt wird. Falls diese weggelassen werden, wird die Datei im Namensraum der aufrufenden Umgebung ausgewertet.

filter(function, list)

Erzeugt eine neue Liste aus den Objekten von list, für die function zu logisch wahr ausgewertet wird. Falls function gleich None ist, wird die Identitätsfunktion verwendet, und alle Elemente von list werden entfernt, die logisch falsch sind.

float(x)

Konvertiert x in eine Fließkommazahl.

getattr(object, name)

Gibt ein Attribut eines Objektes zurück. name ist ein String. Identisch mit object.name.

globals()

Ergibt ein Dictionary, das dem globalen Namensraum der aufrufenden Umgebung entspricht.

hasattr(object, name)

Ergibt 1, wenn name der Name eines Attributes von object ist, sonst 0. name ist ein String.

hash(obj)

Gibt einen ganzzahligen Hash-Wert eines Objektes zurück (falls möglich). Der Hash-Wert für zwei Objekte ist identisch, wenn diese nach einem Vergleich als gleich gelten. Veränderliche Objekte definieren keinen Hash-Wert.

hex(x)

Konvertiert x in einen hexadezimalen String.

id(object)

Ergibt die eindeutige, ganzzahlige Kennung eines Objektes.

input([prompt])

Identisch mit eval(raw_input(prompt)).

intern(string)

Prüft, ob string in einer internen String-Tabelle aufgeführt ist. Falls ja, wird eine Kopie dieses internalisierten Strings zurückgegeben. Falls nicht, wird string in die Tabelle aufgenommen und zurückgegeben. Diese Funktion wird hauptsächlich dazu benutzt, eine bessere Performanz bei Operationen mit Dictionary-Zugriffen zu erreichen. Internalisierte Strings werden niemals speicherbereinigt.

isinstance(object, classobj)

Ergibt logisch wahr, falls object eine Instanz von classobj oder einer Unterklasse von classobj ist. Kann auch zur Typ-Prüfung verwendet werden, falls classobj ein Typ-Objekt ist.

issubclass(class1, class2)

Ergibt logisch wahr, falls class1 eine Unterklasse von class2, d.h. abgeleitet von class2 ist. Man beachte: issubclass(A, A) ist logisch wahr.

len(s)

Ergibt die Anzahl von Elementen in s.

list(s)

Ergibt eine neue Liste, bestehend aus den Elementen der Sequenz s.

locals()

Ergibt ein Dictionary, das dem lokalen Namensraum der aufrufenden Umgebung entspricht.

long(x)

Konvertiert eine Zahl oder einen String x in eine lange Ganzzahl.

map(function, list, ...)

Wendet function auf jedes Element von list an und gibt eine Liste von Ergebnissen zurück. Wenn mehrere Listen übergeben werden, wird angenommen, dass function ebenso viele Argumente erwartet, wobei jedes Argument einer anderen Liste entnommen wird. Falls function gleich None ist, wird die Identitätsfunktion angenommen. Falls None auf mehrere Listen angewendet wird, wird eine Liste von Tupeln zurückgegeben, in der jedes Tupel ein Element von jeder Liste enthält. Kurze Listen werden, wenn nötig, bis zur Länge der längsten Liste mit None-Werten erweitert.

max(s [, args, ...])

Ergibt bei einem einzigen Argument s das Maximum der Sequenz s. Bei mehreren Argumenten ergibt es das größte.

min(s [, args, ...])

Ergibt bei einem einzigen Argument s das Minimum der Sequenz s. Bei mehreren Argumenten ergibt es das kleinste.

oct(x)

Konvertiert eine Ganzzahl x in einen oktalen String.

open(filename [, mode [, bufsize]])

Öffnet die Datei filename und gibt ein neues Dateiobjekt zurück (siehe Kapitel 10,

»Ausführungsumgebung«). mode gibt an, in welchem Modus die Datei geöffnet werden soll:

'r' zum Lesen, 'w' zum Schreiben und 'a' zum Anfügen. Ein optionales '+' kann zum Modus hinzugefügt werden, um die Datei zu aktualisieren (was Schreiben und Lesen

ermöglicht). Der Modus 'w+' reduziert die Dateigröße auf die Länge 0, wenn sie bereits existiert. Der Modus 'r+' oder 'a+' öffnet die Datei zum Lesen und Schreiben, lässt aber den ursprünglichen Inhalt unverändert, wenn die Datei geöffnet wird. Ein dem Modus angefügtes 'b' bezeichnet einen Binärmodus. Wird der Modus weggelassen, wird 'r' als Voreinstellung angenommen. Das Argument bufsize gibt das Puffer-Verhalten an, wobei 0 für keine und 1 für eine Zeilenpufferung steht. Jede andere positive Zahl bezeichnet eine ungefähre Puffergröße in Bytes. Eine negative Zahl gibt an, dass die Voreinstellung des Systems benutzt werden soll, was auch die Standard-Voreinstellung ist.

ord(c)

Ergibt den ganzzahligen ASCII-Wert eines einzelnen Zeichens c.

pow(x, y [, z])

Ergibt x ** y. Wenn z angegeben wird, ergibt es (x ** y) % z.

range([start,] stop [, step])

Erzeugt eine Liste von Ganzzahlen, von start bis stop. stop bezeichnet eine

Schrittweite und ist auf 1 gesetzt, falls sie nicht angegeben wird. Wenn start weggelassen wird, wird als Voreinstellung der Wert 0 verwendet. Ein negativer Wert für step erzeugt eine Liste mit abnehmenden Werten.

Siehe auch: xrange

raw_input([prompt])

Liest eine Eingabezeile von der Standardeingabe (sys.stdin) und gibt sie als String zurück.

Wenn eine Eingabeaufforderung prompt angegeben wird, wird diese vorher auf die Standardausgabe (sys.stdout) ausgegeben. Zeilenende-Zeichen am Ende werden

weggelassen und falls ein EOF gelesen wird, wird die Ausnahme EOFError ausgelöst. Wenn das Modul readline geladen ist, wird diese Funktion es benutzen, um bei der Eingabe verbesserte Editier- und Fortsetzungsmechanismen zu ermöglichen.

reduce(func, seq [, initializer])

Wendet eine Funktion func wiederholt auf die Elemente einer Sequenz seq an und gibt einen einzelnen Wert zurück. Von func wird angenommen, dass es zwei Argumente annimmt. func wird zu Beginn auf die ersten beiden Elemente von seq angewendet, dann auf das Ergebnis davon und das jeweils nächste Element von seq, solange bis alle Elemente von seq aufgebraucht sind. initializer ist ein optionaler Startwert, der beim ersten Aufruf sowie dann verwendet wird, wenn seq leer ist.

reload(module)

Lädt erneut ein bereits importiertes Modul. module muss auf ein bereits existierendes Modul-Objekt verweisen. Vom Gebrauch dieser Funktion wird außer zum Zwecke der Fehlersuche abgeraten. Man beachte dabei Folgendes:

• Wenn ein Modul erneut geladen wird, wird das Dictionary, das seinen globalen Namensraum definiert, beibehalten. Somit werden Definitionen im alten Modul, die nicht Teil des erneut geladenen Moduls sind, beibehalten. Module können das ausnutzen, um zu verifizieren, ob sie bereits geladen wurden.

• Es ist normalerweise nicht erlaubt, zur Laufzeit geladene und in C- oder C++ geschriebene Module erneut zu laden.

• Falls irgendwelche andere Module dieses Modul mit der from-Anweisung geladen haben, werden sie weiterhin die Definitionen des zuvor geladenen Moduls verwenden. Dieses Problem kann vermieden werden, indem entweder die from-Anweisung erneut ausgeführt wird oder

indem vollständig qualifizierte Namen verwendet werden wie in module.name.

• Wenn es irgendwelche Instanzen von Objekten gibt, die von Klassen im alten Modul erzeugt worden sind, werden diese weiterhin Methoden benutzen, die im alten Modul definiert wurden.

repr(object)

Gibt eine String-Repräsentation von object zurück. Dies ist der gleiche String, der auch durch Anwendung von Rückwärtshochkommata (``) generiert wird. In den meisten Fällen ist der zurückgegebene String ein Ausdruck, der an eval() übergeben werden kann, um das Objekt erneut zu erzeugen.

round(x [, n])

Ergibt eine gerundete Fließkommazahl, wobei die Fließkommazahl x auf das nächste Vielfache von 10 hoch n gerundet wird. Falls n weggelassen wird, wird der voreingestellte Wert 0 dafür benutzt. Wenn zwei Vielfache gleich weit von 0 entfernt sind, wird von 0 weg gerundet (z.B. wird 0.5 auf 1.0 gerundet und -0.5 auf -1.0).

setattr(object, name, value)

Setzt ein Attribut eines Objektes. name ist ein String. Identisch mit object.name = value.

slice([start,] stop [, step])

Ergibt ein Teilbereichsobjekt, das ganze Zahlen im angegebenen Intervall repräsentiert.

Teilbereichsobjekte werden auch durch die erweiterte Teilbereichsnotation erzeugt. Siehe Abschnitt »Methoden auf Sequenzen und Abbildungen« in Kapitel 3 für weitere Details.

str(object)

Ergibt einen String, der die druckbare Form eines Objektes repräsentiert. Dieser ist identisch mit dem String, der von der print-Anweisung ausgegeben wird.

tuple(s)

Erzeugt ein Tupel, dessen Elemente aus der Sequenz s stammen. Falls s bereits ein Tupel ist, wird es unverändert zurückgegeben.

type(object)

Ergibt den Typ von object. Es wird ein Typ-Objekt zurückgegeben, wie er im Modul types definiert ist.

vars([object])

Gibt die Symboltabelle von object zurück (normalerweise in seinem Attribut __dict__

anzutreffen). Ohne Argument wird ein Dictionary zurückgegeben, das dem lokalen Namensraum entspricht.

xrange([start,] stop [, step])

Funktioniert genau wie range(), außer dass ein Objekt vom Type XRangeType zurückgegeben wird. Dieses Objekt erzeugt dieselben Werte wie sie auch in der von

range() erzeugten Liste gespeichert sind, aber ohne sie tatsächlich abzuspeichern, sondern nur bei Bedarf. Das ist nützlich, wenn man mit sehr großen Ganzzahl-Intervallen arbeitet, die sonst einen großen Teil des Hauptspeichers verbrauchen würden.

Im Dokument Python Referenz (Seite 86-90)