Una classe è un progetto o un prototipo definito dall'utente da cui vengono creati gli oggetti. Le classi forniscono un mezzo per raggruppare insieme dati e funzionalità. La creazione di una nuova classe crea un nuovo tipo di oggetto, consentendo la creazione di nuove istanze di quel tipo. A ogni istanza di classe possono essere associati attributi per mantenerne lo stato. Le istanze di classe possono anche avere metodi (definiti dalla loro classe) per modificare il loro stato.
Comprendere la necessità di creare una classe e un oggetto in Pitone consideriamo un esempio, diciamo che vuoi tenere traccia del numero di cani che possono avere attributi diversi come razza ed età. Se viene utilizzata una lista, il primo elemento potrebbe essere la razza del cane mentre il secondo elemento potrebbe rappresentarne l’età. Supponiamo che ci siano 100 cani diversi, quindi come faresti a sapere quale elemento dovrebbe essere quale? E se volessi aggiungere altre proprietà a questi cani? Ciò manca di organizzazione ed è esattamente l’esigenza delle lezioni.
Sintassi: Definizione di classe
class ClassName: # Statement>
Sintassi: Definizione dell'oggetto
obj = ClassName() print(obj.atrr)>
La classe crea un file definito dall'utente Alcuni punti sulla classe Python:
- Le classi vengono create dalla classe parola chiave.
- Gli attributi sono le variabili che appartengono ad una classe.
- Gli attributi sono sempre pubblici ed è possibile accedervi utilizzando l'operatore punto (.). Es.: La mia classe.Il mio attributo
Creazione di una classe Python
Qui, la parola chiave class indica che stai creando una classe seguita dal nome della classe (Cane in questo caso).
confronta la stringa javaPython3
class Dog: sound = 'bark'>
Oggetto della classe Python
Un Oggetto è un'istanza di una Classe. Una classe è come un progetto mentre un'istanza è una copia della classe con valori reali . Non è più un'idea, è un cane vero, come un cane di razza carlino che ha sette anni. Puoi avere molti cani per creare molte istanze diverse, ma senza la classe come guida ti perderesti, non sapendo quali informazioni sono richieste.
Un oggetto è costituito da:
- Stato: È rappresentato dagli attributi di un oggetto. Riflette anche le proprietà di un oggetto.
- Comportamento: È rappresentato dai metodi di un oggetto. Riflette anche la risposta di un oggetto ad altri oggetti.
- Identità: Dà un nome univoco a un oggetto e consente a un oggetto di interagire con altri oggetti.

Dichiarazione di oggetti di classe (chiamata anche creazione di un'istanza di una classe)
Quando viene creato un oggetto di una classe, si dice che la classe sia istanziata. Tutte le istanze condividono gli attributi e il comportamento della classe. Ma i valori di tali attributi, ovvero lo stato, sono unici per ciascun oggetto. Una singola classe può avere un numero qualsiasi di istanze.
Esempio:

Esempio di classe e oggetto Python
La creazione di un oggetto in Python implica la creazione di un'istanza di una classe per creare una nuova istanza di quella classe. Questo processo viene anche definito creazione di istanze di oggetti.
Python3 # Python3 program to # demonstrate instantiating # a class class Dog: # A simple class # attribute attr1 = 'mammal' attr2 = 'dog' # A sample method def fun(self): print('I'm a', self.attr1) print('I'm a', self.attr2) # Driver code # Object instantiation Rodger = Dog() # Accessing class attributes # and method through objects print(Rodger.attr1) Rodger.fun()> Produzione:
mammal I'm a mammal I'm a dog>
Nell'esempio precedente viene creato un oggetto che è fondamentalmente un cane di nome Rodger. Questa classe ha solo due attributi di classe che ci dicono che Rodger è un cane e un mammifero.
Spiegazione :
In questo esempio, stiamo creando una classe Dog e abbiamo creato due variabili di classe attr1 e attr2 . Abbiamo creato un metodo denominato divertimento() che restituisce la stringa I'm a, {attr1} e I'm a, {attr2}. Abbiamo creato un oggetto della classe Dog e lo stiamo stampando attr1 dell'oggetto. Infine, chiamiamo il divertimento() funzione .
Parametro personale
Quando chiamiamo un metodo di questo oggetto come myobject.method(arg1, arg2), questo viene automaticamente convertito da Python in MyClass.method(myobject, arg1, arg2) – questo è tutto lo speciale se stesso riguarda.
Python3 class GFG: def __init__(self, name, company): self.name = name self.company = company def show(self): print('Hello my name is ' + self.name+' and I' + ' work in '+self.company+'.') obj = GFG('John', 'GeeksForGeeks') obj.show()> IL Se stesso Il parametro non lo chiama Self, puoi usare qualsiasi altro nome al suo posto. Qui cambiamo il sé nella parola qualcuno e l'output sarà lo stesso.
Python3 class GFG: def __init__(somename, name, company): somename.name = name somename.company = company def show(somename): print('Hello my name is ' + somename.name + ' and I work in '+somename.company+'.') obj = GFG('John', 'GeeksForGeeks') obj.show()> Produzione: L'output per entrambi i codici sarà lo stesso.
Hello my name is John and I work in GeeksForGeeks.>
Spiegazione:
In questo esempio, stiamo creando una classe GFG e abbiamo creato il file nome e azienda variabili di istanza nel costruttore. Abbiamo creato un metodo denominato dì ciao() che restituisce la stringa Ciao, mi chiamo + {nome} + e lavoro in +{azienda}+..Abbiamo creato un oggetto classe persona e stiamo passando il nome Giovanni e compagnia GeeksForGeeks alla variabile di istanza. Infine, chiamiamo il spettacolo() della classe.
Dichiarazione di superamento
L’esecuzione del programma non è influenzata da passaggio l’inazione della dichiarazione. Permette semplicemente al programma di saltare quella sezione del codice senza fare nulla. Viene spesso utilizzato quando i vincoli sintattici di Python richiedono un'istruzione valida ma non deve essere eseguito alcun codice utile.
Python3 class MyClass: pass>
Metodo __init__()
IL __caldo__ Il metodo è simile ai costruttori in C++ E Giava . I costruttori vengono utilizzati per inizializzare lo stato dell'oggetto. Come i metodi, anche un costruttore contiene una raccolta di istruzioni (ovvero istruzioni) che vengono eseguite al momento della creazione dell'oggetto. Viene eseguito non appena viene istanziato un oggetto di una classe. Il metodo è utile per eseguire qualsiasi inizializzazione che desideri eseguire con il tuo oggetto.
Python3 # Sample class with init method class Person: # init method or constructor def __init__(self, name): self.name = name # Sample Method def say_hi(self): print('Hello, my name is', self.name) p = Person('Nikhil') p.say_hi()> Produzione:
Hello, my name is Nikhil>
Spiegazione:
In questo esempio, stiamo creando una classe Person e abbiamo creato un file nome variabile di istanza nel costruttore. Abbiamo creato un metodo chiamato say_hi() che restituisce la stringa Ciao, mi chiamo {nome}. Abbiamo creato un oggetto di classe persona e passiamo il nome Nikhil alla variabile di istanza. Infine, chiameremo il say_hi() della classe.
Metodo __str__()
Python ha un metodo particolare chiamato __str__() . che viene utilizzato per definire come a classe l'oggetto dovrebbe essere rappresentato come una stringa. Viene spesso utilizzato per fornire a un oggetto una rappresentazione testuale leggibile dall'uomo, utile per la registrazione, il debug o per mostrare agli utenti informazioni sull'oggetto. Quando un oggetto classe viene utilizzato per creare una stringa utilizzando le funzioni integrate print() e str(), il file __str__() la funzione viene utilizzata automaticamente. Puoi modificare il modo in cui gli oggetti di a classe sono rappresentati in stringhe definendo il file __str__() metodo.
Python3 class GFG: def __init__(self, name, company): self.name = name self.company = company def __str__(self): return f'My name is {self.name} and I work in {self.company}.' my_obj = GFG('John', 'GeeksForGeeks') print(my_obj)> Produzione:
My name is John and I work in GeeksForGeeks.>
Spiegazione:
In questo esempio, stiamo creando una classe denominata GFG. Nella classe stiamo creando due variabili di istanza nome e azienda . Nel metodo __str__() stiamo restituendo il file nome variabile di istanza e azienda variabile di istanza. Infine, stiamo creando l'oggetto della classe GFG e chiamiamo il metodo __str__().
Variabili di classe e istanza
Variabili di istanza sono per i dati, univoci per ogni istanza e le variabili di classe sono per attributi e metodi condivisi da tutte le istanze della classe. Le variabili di istanza sono variabili il cui valore è assegnato all'interno di un costruttore o metodo con self mentre le variabili di classe sono variabili il cui valore è assegnato nella classe.
Definizione delle variabili di istanza utilizzando un costruttore.
Python3 # Python3 program to show that the variables with a value # assigned in the class declaration, are class variables and # variables inside methods and constructors are instance # variables. # Class for Dog class Dog: # Class Variable animal = 'dog' # The init method or constructor def __init__(self, breed, color): # Instance Variable self.breed = breed self.color = color # Objects of Dog class Rodger = Dog('Pug', 'brown') Buzo = Dog('Bulldog', 'black') print('Rodger details:') print('Rodger is a', Rodger.animal) print('Breed: ', Rodger.breed) print('Color: ', Rodger.color) print('
Buzo details:') print('Buzo is a', Buzo.animal) print('Breed: ', Buzo.breed) print('Color: ', Buzo.color) # Class variables can be accessed using class # name also print('
Accessing class variable using class name') print(Dog.animal)> Produzione :
Rodger details: Rodger is a dog Breed: Pug Color: brown Buzo details: Buzo is a dog Breed: Bulldog Color: black Accessing class variable using class name dog>
Spiegazione:
Una classe denominata Dog è definita con a variabile di classe animale abbinato al cane da corda. Le variabili di classe sono condivise da tutti gli oggetti di una classe e sono accessibili utilizzando il nome della classe. La classe Dog ha due variabili di istanza razza e colore. Successivamente creeremo due oggetti del file Cane class e stiamo stampando il valore di entrambi gli oggetti con una variabile di classe denominata animale.
Definizione delle variabili di istanza utilizzando il metodo normale:
Python3 # Python3 program to show that we can create # instance variables inside methods # Class for Dog class Dog: # Class Variable animal = 'dog' # The init method or constructor def __init__(self, breed): # Instance Variable self.breed = breed # Adds an instance variable def setColor(self, color): self.color = color # Retrieves instance variable def getColor(self): return self.color # Driver Code Rodger = Dog('pug') Rodger.setColor('brown') print(Rodger.getColor())> Produzione:
brown>
Spiegazione:
In questo esempio, abbiamo definito una classe denominata Cane E abbiamo creato un variabile di classe animale. Abbiamo creato una variabile di istanza razza nel file costruttore . La classe Dog è composta da due metodi setColor E getColo r, vengono utilizzati per creare e inizializzare una variabile di istanza e recuperare il valore della variabile di istanza. Abbiamo fatto un oggetto del Cane class e abbiamo impostato il valore della variabile di istanza su marrone e stiamo stampando il valore nel terminale.