| Überlast Einfache Überlastung von Methoden und Funktionen über einen @overlast-Dekorator |
Jetzt downloaden |
Überlast Ranking & Zusammenfassung
- 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