erste Weg (Sie werden die meisten wahrscheinlich wollen diese benutzen)
Sie können nur durch den Einsatz if
Anweisungen in Ihrer Funktion für alle Kriterien überprüfen:
def func(a):
if not isinstance(a, collections.abc.Sequence):
raise TypeError("The variable has a wrong type")
elif len(a) != 2:
raise ValueError("Wrong length given for list")
# rest of the code goes here
2. Weg (nur zum Debuggen)
Sie könnenverwendenals Umgehungslösung (für das Debuggen gemeint):
def func(a):
assert isinstance(a, collections.abc.Sequence) and len(a) == 2, "Wrong input given."
# rest of the code goes here
diese So prüft, ob beide Kriterien erfüllt werden, sonst wird ein assertion error
wird mit der Meldung Falscher Eingang Typ angehoben werden.
[Typ Hinweise] (https://www.python.org/dev/peps/pep-0484/) wird voraussichtlich mit Python 3.5 ausgeliefert, die noch nicht fertig ist. – myaut
Meine Empfehlung wäre enger mit dem verbunden, was Sie konkret erreichen möchten. Warum nur 'liste'? Wären andere Sequenzen nicht akzeptabel? Und warum genau zwei Elemente? Was repräsentieren sie? Warum möchten Sie sie in einer "Liste" anstatt als zwei separate Argumente übergeben? –
@myaut Werden diese Typhinweise zur Kompilierzeit oder zur Laufzeit überprüft? Wird es auch direkt von Python unterstützt oder wird eine externe Software benötigt? Denn wie ich es sehe - es ist irgendwie zu abstrakt und optional. – AnArrayOfFunctions