[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