habe ich eine Funktion, und ich möchte in der Lage sein, um es von keyworded-Parametern mit einem Satz zu nennen, die ich **criterias
nennen:Python - Pass einen Bereich des Schwimmers (ohne Stufe) als Argument einer Funktion
def actionBasedOnParameters(**criterias):
# my code
Innerhalb dieser Reihe von Parametern wird einer von ihnen 'SumInc' genannt und ich würde gerne einen Bereich zu ihm übergeben. Der Bereich wird die Form von [1:15] oder [1:] oder [: 15] haben. Etwas, das mich im Wesentlichen prüfen lässt, ob eine Variable in meinem Code größer als eine bestimmte Grenze oder niedriger als eine andere Grenze oder beides ist. In der gleichen Weise, wie diese Zeilen Code tun:
In [188]: 1 <= 15.98877 <= 15
Out[188]: False
In [188]: 1 <= 15.98877
Out[188]: True
In [188]: 15.98877 <= 15
Out[188]: False
Aber ich bin auf der Suche nach einem sauberere Weg, um beiden Grenzen zu passieren, ohne einen Parameter für jeden erstellen zu müssen und viele, wenn die Bedingungen um Dinge zu erledigen.
Etwas, das würde wie folgt aussehen:
In [189]: criterias = dict(SumInc=[:15])
def actionBasedOnParameters(**criterias):
if criterias['SumInc'] is not None:
if my_variable is in criterias['SumInc']:
#action1
else:
#action2
Gibt es etwas dieser Art vorhanden?
Danke für Ihre Tipps,
Sie könnten ein ['slice'] (https://docs.python.org/3/library/functions.html#slice) Objekt übergeben. – fenceop
Wie würde ich dann überprüfen, dass meine Variable innerhalb dieser Scheibe ist? Vor allem, wenn es nur eine Grenze gibt. Nehmen wir an, ich setze es als criteria = dict (SumInc = slice (None, 15)) –
Sie können auf die Attribute 'start' und 'stop' zugreifen und anhand der angegebenen Grenzen entscheiden, welcher Vergleich durchgeführt werden soll. – fenceop