Riduzione dei calcoli ridondanti

3

Sto vivendo un dilemma. Lascia che ti spieghi con due funzioni:

# 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}):

Non è raro che func2 venga chiamato subito dopo func1 con la stessa variabile vector . Esiste un calcolo ridondante per la magnitudine vettoriale, poiché viene calcolato due volte. La grandezza vettoriale dovrebbe invece essere un parametro funzione separato? In caso contrario, cosa dovrebbe essere modificato per alleviare questo problema?

    
posta Andrew Gazelka 23.05.2018 - 01:42
fonte

1 risposta

8

Il calcolo della magnitudine vettoriale dovrebbe essere un metodo della classe vector . Quindi può memorizzare nella cache e riutilizzare il risultato come necessario o consigliabile. L'appesantimento della logica di livello superiore con micro-decisioni come questa non è buona per la leggibilità.

    
risposta data 23.05.2018 - 08:02
fonte

Leggi altre domande sui tag