logo

Classes i objectes Python

Una classe és un pla o prototip definit per l'usuari a partir del qual es creen objectes. Les classes proporcionen un mitjà per agrupar dades i funcionalitats. La creació d'una nova classe crea un nou tipus d'objecte, que permet crear noves instàncies d'aquest tipus. Cada instància de classe pot tenir atributs associats per mantenir el seu estat. Les instàncies de classe també poden tenir mètodes (definits per la seva classe) per modificar el seu estat.

Comprendre la necessitat de crear una classe i un objecte Python Considerem un exemple, suposem que volíeu fer un seguiment del nombre de gossos que poden tenir diferents atributs com la raça i l'edat. Si s'utilitza una llista, el primer element podria ser la raça del gos mentre que el segon element podria representar la seva edat. Suposem que hi ha 100 gossos diferents, llavors com sabríeu quin element se suposa que és quin? I si volguéssiu afegir altres propietats a aquests gossos? Això manca d'organització i és la necessitat exacta de les classes.



Sintaxi: Definició de classe

class ClassName:  # Statement>

Sintaxi: Definició d'objecte

obj = ClassName() print(obj.atrr)>

La classe crea un fitxer definit per l'usuari Alguns punts de la classe Python:



  • Les classes es creen per paraula clau class.
  • Els atributs són les variables que pertanyen a una classe.
  • Els atributs sempre són públics i es pot accedir mitjançant l'operador de punt (.). Ex.: La meva classe.El meu atribut

Creació d'una classe Python

Aquí, la paraula clau class indica que esteu creant una classe seguida del nom de la classe (gos en aquest cas).

connectar la base de dades java
Python 3
class Dog: sound = 'bark'>

Objecte de la classe Python

Un Object és una instància d'una Classe. Una classe és com un pla mentre que una instància és una còpia de la classe amb valors reals . Ja no és una idea, és un gos real, com un gos de raça pug que té set anys. Pots tenir molts gossos per crear moltes instàncies diferents, però sense la classe com a guia, et perdries, sense saber quina informació es requereix.

Un objecte està format per:



  • Estat: Es representa amb els atributs d'un objecte. També reflecteix les propietats d'un objecte.
  • Comportament: Es representa amb els mètodes d'un objecte. També reflecteix la resposta d'un objecte a altres objectes.
  • Identitat: Dóna un nom únic a un objecte i permet que un objecte interactuï amb altres objectes.

classe python

Declaració d'objectes de classe (també anomenat instància d'una classe)

Quan es crea un objecte d'una classe, es diu que la classe està instància. Totes les instàncies comparteixen els atributs i el comportament de la classe. Però els valors d'aquests atributs, és a dir, l'estat, són únics per a cada objecte. Una sola classe pot tenir qualsevol nombre d'instàncies.

Exemple:

python declarant un objecte

Exemple de classe i objecte Python

La creació d'un objecte en Python implica la instanciació d'una classe per crear una nova instància d'aquesta classe. Aquest procés també es coneix com a instanciació d'objectes.

Python 3
# 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()>

Sortida:

mammal I'm a mammal I'm a dog>

A l'exemple anterior, es crea un objecte que és bàsicament un gos anomenat Rodger. Aquesta classe només té dos atributs de classe que ens diuen que Rodger és un gos i un mamífer.

Explicació:

En aquest exemple, estem creant una classe de gos i hem creat dues variables de classe attr1 i attr2 . Hem creat un mètode anomenat diversió() que retorna la cadena jo sóc a, {attr1} i jo sóc a, {attr2}. Hem creat un objecte de la classe de Gossos i estem imprimint al attr1 de l'objecte. Finalment, anomenem el diversió() funció .

Paràmetre autònom

Quan anomenem un mètode d'aquest objecte com a myobject.method(arg1, arg2), Python el converteix automàticament en MyClass.method(myobject, arg1, arg2): això és tot l'especial jo mateix és sobre.

Python 3
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()>

El Jo mateix El paràmetre no l'anomena Self, podeu utilitzar qualsevol altre nom en lloc d'ell. Aquí canviem el jo per la paraula algú i la sortida serà la mateixa.

Python 3
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()>

Sortida: La sortida dels dos codis serà la mateixa.

Hello my name is John and I work in GeeksForGeeks.>

Explicació:

En aquest exemple, estem creant una classe GFG i hem creat el nom i empresa variables d'instància al constructor. Hem creat un mètode anomenat dir hola() que retorna la cadena Hola, el meu nom és + {nom} + i treballo a +{empresa}+..Hem creat un objecte de classe de persona i hem passat el nom Joan i Companyia GeeksForGeeks a la variable d'instància. Finalment, anomenem el espectacle() de la classe.

Passa la declaració

L'execució del programa no es veu afectada per passar inacció de la declaració. Simplement permet que el programa salti més enllà d'aquesta secció del codi sense fer res. S'utilitza amb freqüència quan les restriccions sintàctiques de Python exigeixen una declaració vàlida però no s'ha d'executar cap codi útil.

Python 3
class MyClass: pass>

mètode __init__().

El __calent__ El mètode és similar als constructors a C++ i Java . Els constructors s'utilitzen per inicialitzar l'estat de l'objecte. Igual que els mètodes, un constructor també conté una col·lecció d'instruccions (és a dir, instruccions) que s'executen en el moment de la creació de l'objecte. S'executa tan bon punt s'instancia un objecte d'una classe. El mètode és útil per fer qualsevol inicialització que vulgueu fer amb el vostre objecte.

Python 3
# 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()>

Sortida:

Hello, my name is Nikhil>

Explicació:

En aquest exemple, estem creant una classe de persona i hem creat un nom variable d'instància al constructor. Hem creat un mètode anomenat say_hi() que retorna la cadena Hola, el meu nom és {nom}. Hem creat un objecte de classe de persona i passem el nom Nikhil a la variable d'instància. Finalment, estem cridant al say_hi() de la classe.

mètode __str__().

Python té un mètode particular anomenat __str__() . que s'utilitza per definir com a classe L'objecte s'ha de representar com una cadena. Sovint s'utilitza per donar a un objecte una representació textual llegible per l'home, que és útil per registrar, depurar o mostrar informació d'objectes als usuaris. Quan s'utilitza un objecte de classe per crear una cadena utilitzant les funcions incorporades print() i str(), el __str__() funció s'utilitza automàticament. Podeu modificar com els objectes d'a classe es representen en cadenes definint el __str__() mètode.

Python 3
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)>

Sortida:

My name is John and I work in GeeksForGeeks.>

Explicació:

En aquest exemple, estem creant una classe anomenada GFG. A la classe, estem creant dues variables d'instància nom i empresa . En el mètode __str__() estem retornant el nom variable d'instància i empresa variable d'instància. Finalment, estem creant l'objecte de la classe GFG i estem cridant al mètode __str__().

Variables de classe i instància

Variables d'instància són per a dades, úniques per a cada instància i les variables de classe són per a atributs i mètodes compartits per totes les instàncies de la classe. Les variables d'instància són variables el valor de les quals s'assigna dins d'un constructor o mètode amb self, mentre que les variables de classe són variables el valor de les quals s'assigna a la classe.

Definició de variables d'instància mitjançant un constructor.

Python 3
# 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)>

Sortida :

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>

Explicació:

Una classe anomenada gos es defineix amb a variable de classe animal posat al gos de corda. Les variables de classe són compartides per tots els objectes d'una classe i es pot accedir mitjançant el nom de classe. La classe de gossos té dues variables d'instància raça i color. Més endavant estem creant dos objectes del gos class i estem imprimint el valor dels dos objectes amb una variable de classe anomenada animal.

Definició de variables d'instància mitjançant el mètode normal:

Python 3
# 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())>

Sortida:

brown>

Explicació:

En aquest exemple, hem definit una classe anomenada gos i hem creat un variable de classe animal. Hem creat una raça de variables d'instància al fitxer constructor . La classe Gos consta de dos mètodes setColor i getColo r, s'utilitzen per crear i inicialitzar una variable d'instància i recuperar el valor de la variable d'instància. Hem fet un objecte del gos class i hem establert el valor de la variable d'instància en marró i estem imprimint el valor al terminal.