Ciao,

 oltre all'ottima soluzione che hai trovato, ci sono altre due strade:

- usare come parametro di default dell'init un elemento mutabile che può così essere cambiato nel tempo
- usare un modulo di config/registro globale
- un decoratore
- varie ed eventuali (adapter, etc)

io tendo usare la seconda soluzione, perché definisce un'interfaccia di comunicazione verso l'esterno senza la complicazione di un adapter (volendo, si possono usare framework come zope.interface come soluzione generale).

Qui un po' di design pattern che possono essere utili in varie situazioni:

https://refactoring.guru/design-patterns/python

Il 2021-12-31 13:09 Valerio Pachera ha scritto:
Buongiorno a tutti, scusatemi in anticipo se non saro' chiaro.

Devo capire se si puo' fare una cosa e come.
Sto cercando di improntare struttura di questa classe:

class Account():

    def __init__(self, name):
        self.name [1] = name

    def self.export(self):
        src_path = os.path.join(src_path, self.name [1])
        dst_path = os.path.join(dst_path, self.name [1])
        # do many things
        print(f'export {src_path} to {dst_path}')

instance = Account('john.doe')
instance.export()

Come avrete notato, src_path e dst_path non sono dichiarati.

Tali percorsi sono uguali per qualsiasi istanza della classe, percio'
vorrei evitare di doverli passare al costruttore, altrimenti per
istanziare un oggetto dovrei scrivere:

instance = Account(src_path, dst_path, 'john.doe')

e lo trovo ridondante.
Vorrei inizializzare i parametri src_path e dest_path 1 sola volta in
modo che siano poi disponibili a tutte le istanze, ammesso che si
possa fare.

Suggerimenti?



Links:
------
[1] http://self.name

_______________________________________________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python
_______________________________________________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python

Reply via email to