GoConqr has a new look! Let us know what you think.

Flashcards

NPS 10 - Von Python und Affen

Tojansen German 12 cards

Cards in this deck (12)

  1. 1Was ist Type Inference?In manchen Sprachen müssen die Typen nicht explizit angegeben werden, sondern der Compiler ist selbst in der
    Lage, die Typen der Variablen, Konstanten, ggf. Funktionen
    etc. aus den Wertzuweisungen, Berechnungen, Aufrufen etc.
    herzuleiten. Diese Typ-Herleitung heißt Type Inference. Man nennt dies dann implicit typing (oder auch Latent
    Typing) im Gegensatz zum explicit typing beim Zwang zur expliziten Angabe aller Typen. Diese Sprachen sind trotz der fehlenden expliziten Typangabe
    dann immer noch statisch getypt, da die Typprüfung trotzdem noch zur Compile-Zeit stattfinden kann.
  2. 2Was sind die Vorteile des Static Typing?- Viele Fehler werden früh gefunden, beim Compilieren und nicht bei der
    Programmausführung (im Test oder beim Kunden).
     - Fehlermeldungen bezeichnen klar, „was noch fehlt“.
    - Kann zur Laufzeit dann schneller sein, da dann keine Checks mehr nötig.
    - Bessere Unterstützung des Programmierers beim Programmieren möglich.
  3. 3Was sind die Nachteile des Static Typing?- Typen immer explizit angeben müssen bedeutet Aufwand und ist unflexibel für Erweiterungen.
     - Man kann Erweiterungen erst dann testen, wenn der Code „unter Typaspekten vollständig“ ist.
    - Unvollständiger Code kann oftmals nicht „partiell getestet / ausprobiert“ werden, da das Typsystem die Compilation verhindert (mit Fehler betreffend der fehlenden Teile).
     - Hinzufügen einer neuen Klasse bedeutet, dass man von der bisherigen
    Basisklasse (oder Interfaces) ableiten muss, damit die neuen Objekte auch passen.
  4. 4Sind Funktionen First Class Citizens in Python? Was bedeutet das in diesem Kontext?Funktionen sind „first-class citizens“ in Python. D.h. sie können genau wie die Werte von Standard-Datentypen als
    Funktionsparameter oder funktionsrückgabewerte übergeben
    werden, als Werte an Variablen zugewiesen werden etc
  5. 5Wird bei Python dynamic oder static typing verwendet? Was ist der Unterschied?Dynamic Typing, das bedeutet, dass die Typprüfungen zur Laufzeit vorgenommen werden, und zwar „wenn nötig“, d.h. z.B. bei Operationen (Operatoren) oder Methodenaufrufen auf Werten / Objekten.
  6. 6Was sind Vorteile des Dynamic Typing unter Python?Die dynamische Typisierung ermöglicht größere Flexibilität bei
    der Programmierung. Dynamisch getypte Sprachen sind oft einfacher zu lernen und zu benutzen als statisch getypte Sprachen. Die Charakteristik der Benutzung / Programmierung ist häufig
    interaktiv, da die Sprachen interpretiert sind (oder sich aufgrund von Just-in-Time Compilation so „anfühlen“). Dies hat beigetragen zum großen Erfolg dynamisch getypter Sprachen, z.B. JavaScript, Python, Ruby, Perl, PHP, …
  7. 7Warum ist Prototypische Programmierung in dynamisch getypten Sprachen einfacher möglich?Prototypische Programmentwicklung ist mit dynamisch getypten Sprachen einfacher möglich, da z.B. noch nicht
    implementierte Methoden nicht auffallen, solange sie in den
    prototypisch durchlaufenen Codeteilen nicht aufgerufen
    werden. Solange der nicht durchlaufen Code syntaktisch korrekt ist,
    kann er unvollständig sein, ohne dass dies Probleme macht.
  8. 8Was ist der Vorteil von dynamisch getypten Sprachen bezüglich der Wiederverwendung?… ist häufig einfacher als bei statisch getypten Sprachen, da die größere Flexibilität des Dynamic Typing dazu führt, dass der Code mit weniger Anpassungen „wieder funktioniert“ bzw.
    sich wegen seiner Flexibilität „besser in die neue Nutzung einfügt“.
    Auch ist die automatische Generierung von Code für dynamisch getypte Sprachen deutlich einfacher als für statisch getypte Sprachen.
  9. 9Was sind Type Annotations? (Python 3.x)Es sind Ausdrücke, die erst einmal nur (syntaktisch gültig) in
    den Quelltext eingefügt werden können. Sie werden auch zur Laufzeit des Programms (dem Programm
    selbst) verfügbar gemacht, ansonsten aber komplett ignoriert.
    Die gespeicherten Annotations können dann als Basis für eine
    Typprüfung dienen, entweder zur Laufzeit des Python Programms durch das Programm selbst, oder durch externe Software, die den Quelltext prüft.
    Bsp.:
    def greet(name: str, age: int) -> str
  10. 10Was ist Duck Typing?Duck Typing ist eine Variante des Dynamic Typing. Es prüft, zur Laufzeit des Programms, immer nur die Methode, die
    gerade aufgerufen wird. Existiert sie, so wird sie aufgerufen.
  11. 11Was ist Monkey Patching? Wofür kann es genutzt werden?Es bezeichnet die Änderung von Klassen, Modulen, Objekten
    etc. zur Laufzeit des Programms.
    Ziel: Änderung / Erweiterung oder ggf. Korrektur der Funktionalität
    der entsprechenden Programmteile. (z.B. Einblenden von Debug-Info o.Ä.)
  12. 12Was ist Wrapping beim Monkey Patching?Wrapping ist das Überschreiben einer Methode im Kontext des Monkeypatchings nach einer speziellen Struktur: Die neue Methode ruft die alte Methode auf, macht aber vorher oder nachher noch etwas anderes, z.B. Debug Ausgaben.

Information

Description
Flashcards on NPS 10 - Von Python und Affen, created by Tojansen on 20/01/2015.
Created by
Tojansen
Views
15
Rating

Feedback

What is it about?

What do you think of the new look?

How do you like it?