私はジレンマを経験しています。 2つの関数で説明します。
# Takes vector.magnitude(), vector.x, vector.y and uses it somewhere
def func1(vector, {other parameters 1}):
pass
# Takes vector.magnitude(), vector.x, vector.y and uses it somewhere
def func2(vector, {other parameters 2}):
func2
が同じvector
変数でfunc1
の直後に呼び出されることは珍しいことではありません。ベクトルの大きさは2回計算されるため、冗長な計算が行われます。代わりに、ベクトルの大きさを個別の関数パラメーターにする必要がありますか?そうでない場合、この問題を軽減するために何を変更する必要がありますか?
ベクトルの大きさの計算は、vector
クラスのメソッドである必要があります。次に、必要に応じて、または推奨される場合に、結果をキャッシュして再利用できます。上位レベルのロジックにこのようなマイクロ決定を課すと、読みにくくなります。