Differences between revisions 1 and 2
Revision 1 as of 2009-07-22 15:00:03
Size: 8618
Editor: anonymous
Comment: Created from wayback
Revision 2 as of 2014-11-11 13:58:24
Size: 8620
Editor: anonymous
Comment:
No differences found!

Allgemeine Begriffe Im englischen Tutorial gibt es im Anhang D ein Glossar mit einigen Python-spezifischen Begriffen. Diese Seite soll quasi eine deutsche Übersetzung werden und Fachbegriffe möglichst einfach erklären.

Hinweis

  • Diese Seite ist unvollständig. Wenn dir ein Begriff fehlt, dann vervollständige die Liste ;) Bitte füge dabei den Begriff alphabetisch ein und beachte dabei die Syntax!

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

B

batteries included
  • Eine Philosophie von Python ist es, eine große Standardbibliothek anzubieten, die es ermöglicht, komplexe Aufgaben in wenigen Zeilen Code erledigen zu können. Dies wird im Python-Umfeld als "batteries included" bezeichnet. Die Module werden dabei teils in C und teils in Python selbst geschrieben und erweitern die Basisfunktionalität der Grundsprache.
    BDFL
    Abkürzung für "Benevolent Dictator For Life", bedeutet etwa "Gütiger Diktator auf Lebenszeit" und steht für Pythons Erfinder Guido van Rossum, der bei allen Entscheidungen über die Zukunft Pythons das letzte Wort hat und alle Python-Entwickler überstimmen kann.

C

classic class
  • Klassische Klassen sind alle Klassen, deren Metaklasse types.ClassType (a.k.a. classobj) ist. Im Normalfall sind dies alle Klassen, die nicht von object abgeleitet sind, außer wenn eigene Metaklassen im Spiel sind.

    Closure

    Als Closure bezeichnet man eine Programmfunktion, die beim Aufruf ihren Definitionskontext reproduziert, selbst wenn dieser Kontext außerhalb der Funktion schon nicht mehr existiert. Closures "konservieren" also sozusagen ihren Kontext. (Das war jetzt die komplizierte Beschreibung von Wikipedia.)

D

duck-typing
  • Duck typing bezeichnet im Prinzip die Behandlung eines Objektes nach den Methoden, die es implementiert. Wenn es wie eine Ente läuft und es wie eine quakt ist es mit einer gewissen Wahrscheinlichkeit eine Ente. Sprich: wenn ein Object z.B. die Methoden read(), write()und seek() besitzt, ist es mit großer Wahrscheinlichkeit ein Stream, egal welcher Klasse es angehört. Dynamische Sprachen wie Python ohne Typdeklaration verlassen sich in vielen Bereichen auf duck-typing.

E

EAFP
  • Easier to ask for forgiveness than permission, bedeutet etwa "Einfacher um Entschuldigung zu bitten als um Erlaubnis"). Dies ist ein Teil der Art in der Python-Programme geschrieben werden. So gehen gut geschriebene Python-Programme erstmal von einem positiven Fall aus, das ein Attribut oder ein Schlüssel vorhanden ist und fangen die Exceptions ab, wenn dies nicht def Fall ist. Quelltexte die nach diesem Prinzip geschrieben worden sind, zeichnen sich durch viele try-except-Konstrukte aus. Das Gegenteil von EAFP ist LBYL welches öfter in Sprachen wie C verwendet wird.

G

Generator
  • Der Generator ist ein Python-Objekt, das eine Referenz zu einem Frameobjekt hält (so ein Frame, wie ihn sys._getframe() zurückgibt). Der Frame hat alle Informationen über das Innere der Generatorfunktion, also z.B. Bytecode, momentane Position im Code, Locals, Globals etc.

    Instanziert man einen Generator (mit dem Aufruf einer Funktion, die den Ausdruck yield enthält oder mit einer Generator expression), werden erst einmal nur dieses Objekt und der Frame erzeugt. Ruft man dann die Methode next() des Generators auf, lässt er diesen Frame dann vom Eval-Loop ausführen. Der läuft dann bis zum nächsten yield -- dies unterbricht die Ausführung des Generatorframes und lässt den vorherigen Frame weiterlaufen, etc.

    generator expression

    Eine "genexp" ähnelt einer List comprehension, erstellt aber ähnlich wie xrange() nicht die komplette Liste sofort, sondern einen Iterator, der bei jedem Aufruf von .next() das nächste Element zurückgibt. Generator expressions schreiben sich wie list comprehensions, nur ohne eckige Klammern (dafür mit runden Klammern, falls die Semantik sonst nicht eindeutig wäre).

I

IDLE
  • Eine Integrierte Entwicklungsumgebung (IDE) für Python. IDLE ist ein einfacher Editor und zugleich eine Interpreterumgebung, welche standardmäßig dem Python-Paket beiliegt. Gut für Einsteiger: IDLE dient auch als Beispielcode für die, die eine durchdachte Multiplattform-Anwendung schreiben wollen.

    Allerdings hat sich im Python-Forum des öfteren gezeigt, dass die IDLE auch einige Probleme verursacht. Gerade wenn man Tkinter programmiert, kommt es häufig zu merkwürdigen Fehlern, weil die IDLE selbst ein Tkinter-Programm ist. Generell ist ein normaler Texteditor wie SciTE empfehlenswert. Auf Systemen, wo neben Python z.B. nur Notepad verfügbar ist, ist IDLE aber ein wertvolles Hilfsmittel!

    immutable

    siehe [#M mutable]

    iteration
    Iteration (das Durchlaufen einer Schleife z.B. über alle Elemente einer Liste oder alle Werte anderer iterierbarer Objekte).

L

LBYL
  • Look before you leap, bedeutet so viel wie "Prüfe, bevor du etwas machst". Mit LBYL wird das testen auf Vorbedingungen wie die Existenz von Attributen bezeichnet, bevor man auf die Werte zugreift. Charakterisiert wird dieser Stil durch die große Anzahl von if-Bedingungen in Quelltexten und ist das Gegenteil von EAFP.

    list comprehension

    ZF-Notation für Listenobjekte ('ZF' steht für Zermelo-Fraenkel). Mit List Comprehensions kann man eine Liste aus einem Ausdruck, der die Elemente eines iterierbaren Objektes enthält, erstellen. Der große Vorteil gegenüber einer "normalen" for-Schleifen-Verarbeitung liegt in der Kompaktheit.

    Siehe auch [:List Comprehensions:Beispiel einer List Comprehension]

M

mutable
  • veränderbar/unveränderbar (zur Beschreibung einer Eigenschaft von Objekten eines bestimmten Typs, die besagt, ob der Wert bzw. Inhalt des Objektes an sich verändert werden kann - nicht zu verwechseln mit der Bindung/Zuordnung eines Namens zu einem anderen Wert). Weiterführende Informationen dazu findest du im Forum.

N

Namespaces
  • Ein Name identifiziert ein Objekt (ein String, eine Liste, eine Funktion/Klasse ect.). Diese Zuordnung erfolgt im entsprechenden Kontext, dem Namensraum. Python hat Namensräume (Scopes) für jede Codeebene (d.h. für Funktionen, Klassen, Methoden usw.). Mit anderen Worten, alle Objekte sind lokal in dieser Codeebene eingeschlossen. Außerhalb der Ebene kann man über "Punkt"-Notation die Objekte innerhalb des Namensraums erreichen.

O

Objekt
  • "Alles ist ein Objekt." Python ist eine objektorientierte Sprache. Eine gute Einführung für Einsteiger, die auch häufige Missverständnisse ausräumt, auf der Seite Objekte.

P

Python 3000
  • Auch genannt Python 3.0 oder Py3k. Die nächste Major-Version von Python befindet sich bereits in der Entwicklung. Dabei geht es nicht so sehr um viele neue Features (die auch in der 2.x-Linie schon eingebaut werden können), sondern darum, alte und unschöne Konstrukte aus der Sprache zu werfen bzw. durch neue zu ersetzen. Einzelheiten dazu finden sich in den PEPs ab PEP 3000.

S

__slots__
  • Slots dienen einzig und allein der Speicheroptimierung (weil für Klassen mit __slots__ kein kein __dict__ erstellt wird). Sie sind nur empfehlenswert, wenn man zum einen hunderttausende oder Millionen von Instanzen der Klasse erstellt und zum anderen die Klasse ziemlich klein ist (da nur dann der Wegfall von __dict__ merklich Speicher spart) (Zusammenfassung aus dem Python-Forum)

Tags: Umsteiger

Allgemeine Begriffe (last edited 2019-09-07 14:57:31 by anonymous)