less than 1 minute read

Riporto gli appunti e le considerazioni fatte nel processo di lavoro senza alterare l’autenticità del diario.


Allocazione dinamica degli attributi in funzione delle chiavi del dizionario.

def generaAttributi(self):
    for i, (chiave, valore) in enumerate(self.lista_tuples[4:], start=3):
        setattr(self, chiave, valore)  # Assegna dinamicamente l'attributo
        # Crea dinamicamente un attributo "pfield{i}" che è una lista vuota
        setattr(self, f"pfield{i}", [])

Calcolo Pfields dinamico.


def calcolaPfield(self):
    # Ciclo attraverso gli attributi dinamici che iniziano con "pfield"
    for i in range(3, len(self.lista_tuples[4:]) + 3):  # Iniziamo da 3 per "pfield3"
        pfield_attr = f"pfield{i}"
        if hasattr(self, pfield_attr):  # Verifica se l'attributo esiste
            # Eseguiamo un ciclo sui valori da assegnare a ciascun pfield
            cycled = cycle(getattr(self, self.lista_tuples[i - 3][0]))  # Recuperiamo la lista da associare
            for _ in range(len(self.pfield2)):  # Usa la lunghezza di pfield2 per il ciclo
                getattr(self, pfield_attr).append(next(cycled))  # Assegna i valori dinamicamente

Esempio di comportamento passato come dizionario.


  {
    "attacco":  0,
    "durata":   20,
    "durataArmonica" : 3,
    "ritmo":    [8,2,5,4,7,1],
    "durate":   "Line",
    "ampiezze" : "Line",
    "frequenze" : "Line"
  },

E questa è la versione del reporitory allo stato di lavoro del diario.