Differences between revisions 2 and 3
Revision 2 as of 2014-11-11 13:58:24
Size: 8620
Editor: anonymous
Comment:
Revision 3 as of 2019-09-07 14:57:31
Size: 8
Editor: anonymous
Comment: verkackt (gehackt) by lul xd
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
[[Allgemeine Begriffe?action=fullsearch&context=180&value=linkto:"Allgemeine+Begriffe"|Allgemeine Begriffe]]
Im englischen Tutorial gibt es im [[http://docs.python.org/tut/node18.html|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 {{/moin_static187/python/img/smile4.png|;)|height="15",width="15"}} Bitte füge dabei den Begriff alphabetisch ein und beachte dabei die Syntax!






A | [[Allgemeine Begriffe#B|B]] | [[Allgemeine Begriffe#C|C]] | [[Allgemeine Begriffe#D|D]] | [[Allgemeine Begriffe#E|E]] | F | [[Allgemeine Begriffe#G|G]] | H | [[Allgemeine Begriffe#I|I]] | J | K | [[Allgemeine Begriffe#L|L]] | [[Allgemeine Begriffe#M|M]] | [[Allgemeine Begriffe#N|N]] | [[Allgemeine Begriffe#O|O]] | [[Allgemeine Begriffe#P|P]] | Q | R | [[Allgemeine Begriffe#S|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 [[http://de.wikipedia.org/wiki/Closure|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 ''[[Allgemeine Begriffe#L|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 Integration|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 ''[[Allgemeine Begriffe#E|EAFP]]''.



  list comprehension::
 ZF-Notation für Listenobjekte ('ZF' steht für [[http://de.wikipedia.org/wiki/Zermelo-Fraenkel-Mengenlehre|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 [[http://www.python-forum.de/post-37245.html#37245|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 [[http://www.python.org/dev/peps/pep-3000|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) ([[http://www.python-forum.de/viewtopic.php?t=2312|Zusammenfassung aus dem Python-Forum]])




'''Tags:''' [[Tags/Umsteiger|Umsteiger]]
lul xd

lul xd

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