Domanda Richimare tutti i valori di un attributo in una classe

Maxwell2609

Helper
29 Ottobre 2020
93
20
33
Salve, ho un problema con uno script. Ho bisogno di ottenere una lista contenente tutti i valori di un attributo in una classe. Ecco un esempio per spiegarlo al volo:
Python:
class persone:
    def __init__(self, nome, cognome):
        self.nome = nome
        self.cognome = cognome
        
P1 = persone("Silvio", "Bianchi")
P2 = persone.("Mario", "Rossi")

il mio scopo è ottenere una lista con i nomi del genere:
Python:
lista = ["Silvio", "Mario"]

Grazie in anticipo
 

St3ve

Utente Platinum
12 Ottobre 2011
2,111
1,444
669
Li inserisci in un array e poi usi un ciclo for. Volendo puoi inserire l'array come campo statico della classe per automatizzare il processo di inserimento, poi però il garbage collector non è più in grado di eliminare le istanze.
 

Maxwell2609

Helper
29 Ottobre 2020
93
20
33
Li inserisci in un array e poi usi un ciclo for. Volendo puoi inserire l'array come campo statico della classe per automatizzare il processo di inserimento, poi però il garbage collector non è più in grado di eliminare le istanze.
Ok, da quanto ho capito però dovrei modificare manualmente l'array ogni volta che aggiungo nomi. Esiste un modo per richiamare automaticamente tutti i valori? Ad esempio, prendendo lo script di prima, persone.nome (PS. questo comando genera un errore, è solo un esempio per far capire meglio lo scopo)
Grazie
 
Supporta Inforge con una donazione
Banner pubblicitario per Bright Data su Inforge.net azienda di vendita Proxy, Data Collector e Content Unlocker

St3ve

Utente Platinum
12 Ottobre 2011
2,111
1,444
669
Python:
class Persona:
    instances = []
    def __init__(self, nome, cognome):
        self.nome = nome
        self.cognome = cognome
        Persona.instances.append(self)

P1 = Persona("Silvio", "Bianchi")
P2 = Persona("Mario", "Rossi")

for p in Persona.instances: print(p.nome)

Però, ripeto, quando una variabile viene distrutta l'istanza rimane presente nella lista. Non so se ti può andar bene comunque.
 
  • Grazie
Reactions: Maxwell2609