Überlast

Einfache Überlastung von Methoden und Funktionen über einen @overlast-Dekorator
Jetzt downloaden

Überlast Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • BSD License
  • Name des Herausgebers:
  • Richard Jones
  • Website des Verlags:
  • http://code.google.com/p/bitstring/

Überlast Stichworte


Überlast Beschreibung

Einfache Überlastung von Methoden und Funktionen über einen @overlast-Dekorator Überlast ist ein einfaches Überlastung von Methoden und Funktionen über einen @overLoad-Dekorateur. Dieses Modul ermöglicht es, mehrere Schnittstellen für Funktionen, Methoden, Klassenmethoden, Statikmethoden oder Klassen bereitzustellen. Siehe unten für einige Anmerkungen zum Überladen von Klassen, Sie seltsame Personen Sie. Die entsprechende Implementierung wird basierend auf dem anrufenden Argument Muster ausgewählt. Beispiel: >>> Klasse A (Objekt): ... @overLoad ... DEF-Methode (Selbst a) ) >>> A.Method (1) 'A' >>> A.Method (1, 2) 'A, B'Der Überlastungsgriffe behoben, Schlüsselwort, Variable (* Args) und willkürliches Keyword (** Schlüsselwörter) Argumente . Es handhabt auch Anmerkungen, wenn diese Anmerkungen Typen sind: >>> @overLoad ... Def Func (A: Int): ... Return 'Int' ... >>> @ func.add ... def Func ( A: STR): ... RETURN 'STR' ... >>> Func (1) 'Int' >>> Func ('s') 'Str' >>> Func (1.0) TraceBack (letzter Anruf zuletzt zuletzt ): Datei "", linie 1, in file "overload.py", line 94, in f hebe typeError ('Ungültiger Anruf Argument (S)') TypeError: Ungültiger Anruf-Argument (s) Diese Funktion (und derzeit das Modul im Allgemeinen) erfordert Python 3.Der DOCSTRING und NAME (dh Dokumentation) des resultierenden Callable Die der ersten aufrufbaren überlasteten ClasseOverloading-Klassen ermöglicht es Ihnen, einen Klassentyp basierend auf den Bauargumenten der __NEW__-Methode jedes alternativen Typs auszuwählen. Dies ist jedoch ein Fang: Die __NEW__-Methode muss die Basisklasse __NEW__-Methode explizit aufrufen, anstatt Super zu verwenden () Wie immer. Dies liegt daran, dass nach einem @overlasted die Klasse eine Funktion ist, und Super () mag es nicht, Funktionen übergeben zu werden. Anstelle von: @overLoadclass A (Objekt): def __NEW __ (CLS): # Dies scheitern, weil "A" eine Funktion ist, jetzt super (A, CLS) .__ Neu __ (CLS) Sie müssen: @overLoadClass A (Objekt) : DEF __NEW __ (CLS): # Muss das Basisklasse-Rückgabeobjekt explizit referenzieren .__ Neu __ (CLS) Ich überlasse es dem Leser, um ihre Verwendung von @overLast-Klassen zu rechtfertigen. Anforderungen: · Python Was ist neu in dieser Version: · Diese Version hat den Text des ungültigen AnrufartErrors geändert. Debug-Drucke entfernt.


Überlast Zugehörige Software

sortierbar

Eine App zum Hinzufügen von Drag-and-Drop-Throppelli Admin, um Instanzen von Modellen neu zu ordnen ...

141

Herunterladen