[Python] Suggerimento per creazione classe

yurj a alfa.it yurj a alfa.it
Lun 3 Gen 2022 11:16:45 CET


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 a lists.python.it
> https://lists.python.it/mailman/listinfo/python


Maggiori informazioni sulla lista Python