Voglio scrivere un decoratore che fa persistentememoizzazione (memorizzazione su disco). Dal momento che voglio usare questo decoratore per molte funzioni, devo decidere dove salvare i dati di memorizzazione per queste funzioni. Ho cercato su Google e ho trovato due soluzioni:
- lasciare che le funzioni decidano dove memorizzare i dati di memoizing
- determinare automaticamente dove archiviare i dati in base ai nomi delle funzioni
Tuttavia, in queste due soluzioni, è necessario che ogni funzione "si conosca" in caso di collisione di nomi (o destinazioni), che è un odore di cattivo design.
Quindi, la mia domanda è, come evitare tali collidings?
risposte:
1 per risposta № 1Salvalo in qualcosa vicino o in relazione a __file__
, che è il percorso del file del modulocaricato da. Credo che in alcuni casi possa essere un percorso relativo, quindi potresti voler memorizzare i memo in quel percorso direttamente o trasformarlo in un percorso assoluto o qualcosa del genere.