Forum >> Principianti >> Contare il numero di istanze di una classe definita

Pagina: 1

Ciao a Tutti,
sono nuovo nel forum e piuttosto principiante nell'uso di Python.

Qualcuno saprebbe dirmi come contare il numero di istanze di un oggetto dato (creato da me)?

Grazie



Qualcuno saprebbe dirmi come contare il numero di istanze di un oggetto dato (creato da me)?


Python Ti mette a disposizione le funzioni built-in isinstance(object, classinfo) e type(...), oltre altre ancora per valutazioni più approfondite.

Supposto di voler verificare quanti generici oggetti di un tipo da Te definito sono contenuti in una lista potresti fare qualcosa così :

Python 3.10.6 (main, May 29 2023, 11:10:38) [GCC 11.3.0] on linux
Type "help", "copyright", "credits" or "license()" for more information.
def to_instance(obj, coll):
    count_match = 0
    obj_type = type(obj)
    for item in coll:
        if isinstance(item, obj_type):
            count_match += 1
    return count_match

class Point3D:
    def __init__(self, x, y, z):
        self.x = x
        self.y = y
        self.z = z

        
data = ['Apelle', 2, 27, Point3D(1, 1, 1), 'Caravaggio', -1, Point3D(0, 1, 0)]
to_instance(Point3D(2,2,2), data)
2

Come vedi dal codice ho definito una funzione che ricevuto un oggetto ed una lista, o tupla, conteggia quanti oggetti del tipo di oggetto ricevuto sono contenuti nella lista facendo uso delle due funzioni citate.

Naturalmente, il codice sopra è solo una indicazione generica e di massima per darTi un "la", non ha nessuna aspirazione ad essere usato in produzione.

Fatti non foste a viver come bruti...


Pagina: 1



Esegui il login per scrivere una risposta.