Nella struttura del programma Python di seguito ci sono due moduli con funzioni.
Descrizione del problema:
- Le funzioni sono utilizzate all'interno di altre funzioni dappertutto. strong accoppiamento (dipendenza). Ad esempio, func1 () nel modulo 2 che legge dal file viene chiamato molte volte perché viene chiamato in quasi tutte le altre funzioni in entrambi i moduli. Si tratta di risorse e prestazioni elevate, ma è solo una cattiva pratica.
- Leggere il file così tante volte (ogni volta che viene chiamato funct1 () può essere costoso.
Domanda: qual è un buon modo per migliorare questo design?
Ad esempio, passare le funzioni dal modulo helper 2 alle funzioni nel modulo 1 AS PARAMETERS? [Se lo faccio, ho ancora delle funzioni nel modulo 2 dipendenti l'una dall'altra (es .: funct4 () usa funcr1 (), funct2 (), funct3 (), ecc)]
Il mio paradigma con cui ho iniziato: stavo pensando: "Ah, avrò un modulo principale dove succederà la cosa principale, quindi avrò un modulo laterale per le funzioni che svolgono un lavoro di preparazione e pulizia e li ha chiamati dal modulo 1. " (Bene, ora ho questo pasticcio.) Mi chiedo se un buon design sia quello di rendere le funzioni meno dipendenti l'una dall'altra? Ogni funzione fa una cosa e NON chiama altre funzioni ?? Dovrei usare le lezioni? Come? Riguarda quando usare le classi contro i moduli? Funzionale rispetto al design OO?
Come ridisegnare questo in modo il più piccolo possibile e il file viene letto una sola volta (o il minor numero possibile di volte)?
Grazie per eventuali suggerimenti.
modulo 1
(main module, program execution happens here)
from module2 import *
f1()
- uses funct1() 4 times
- uses funct2() 2 times
f2()
- uses func1() 2 times
- uses func2() 2 times
f3()
- uses func1() 1 time
f4()
- uses func2() 3 times
- uses func3() 3 times
- uses func4() 1 time
f5()
- uses func1() 2 times
- uses func2() 2 times
- uses func4() 4 times
f6()
- uses func1() 3 times
- uses func2() 3 times
- uses func4() 2 times
modulo 2
(ha funzioni di aiuto che forniscono ripulitura e altre funzionalità al modulo 1)
func1()
reads from file (with open('x.txt', 'r') af f: ...
func2()
- uses func1 1 time
func3()
- uses func1 1 time
func4()
- uses func1() 1 time
- uses func2() 2 times - uses func3() 1 time