をフロートの範囲を渡し:パイソン - 私は関数を作成し、私は<code>**criterias</code>を呼び出すキーワードとして、パラメータのセットでそれを呼び出すことができるようにしたい関数の引数として(ステップなし)
def actionBasedOnParameters(**criterias):
# my code
これらのパラメータのうちの1つは「SumInc」と呼ばれ、範囲を渡したいと思います。範囲は[1:15]または[1:]または[:15]の形式になります。基本的には、コード内の変数が特定の境界よりも大きいか、別の境界より低いか、あるいはその両方かどうかをチェックすることができます。コードのこれらの行が行うのと同様に 、:
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
しかし、私は条件が物事を成し遂げるためにならばそれぞれ、多くのパラメータを作成することなく、両方の境界を渡すために滑らかな印象の方法を探しています。このようになります
何か:
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
既存のこの種のようなものはありますか?
ヒントありがとうございました
['slice'](https://docs.python.org/3/library/functions.html#slice)オブジェクトを渡すことができます。 – fenceop
変数がそのスライス内にあることを確認する方法はありますか?特に境界が1つだけの場合は特にそうです。私はそれをcriterias = dict(SumInc = slice(None、15))として設定します。 –
'start'と' stop'属性にアクセスして、提供された境界に基づいてどのような比較を行うかを決定できます。 – fenceop