私は、値に対して一連の操作を実行する関数operations()を持っています。私はまた、パラメータとして関数を渡すことによって、値に対して任意の操作を実行しています。私は操作が呼び出される位置も指定しています。これは出力に影響するためです。私は現在、以下のコードに示すように各位置でif文を使用していますが、これを行うためのより良いツールがありますか?この人為的な例では問題ありませんが、実際のコードではもっと多くのステップがあるので、多くのif文が終了します。一連のステップで関数を呼び出す位置を指定します。
def add1(val):
return val + 1
def operations(value, position, func):
if position == 0:
value = func(value)
value *= 2
if position == 1:
value = func(value)
value += 2
if position == 2:
value = func(value)
value *= 3
if position == 3:
value = func(value)
return value
operations(1, 0, add1) # returns 18
operations(1, 1, add1) # returns 15
operations(1, 2, add1) # returns 15
あなたは常にそれを結果的に実行しますか?もしそうなら発電機を利用することができます。 – mr0re1
操作は論理的に位置にどのように関連していますか?つまり、 'value * = 2'は常に' position == 0 'の後にあるべきですか、' position == 1'の前にあるべきですか? –
@germn一貫している限り、現時点ではそれほど重要ではありません。 – david12345