logo

Clases y objetos de Python

Una clase es un modelo o prototipo definido por el usuario a partir del cual se crean objetos. Las clases proporcionan un medio para agrupar datos y funcionalidades. La creación de una nueva clase crea un nuevo tipo de objeto, lo que permite crear nuevas instancias de ese tipo. Cada instancia de clase puede tener atributos adjuntos para mantener su estado. Las instancias de clase también pueden tener métodos (definidos por su clase) para modificar su estado.

Para comprender la necesidad de crear una clase y un objeto en Pitón Consideremos un ejemplo, digamos que desea realizar un seguimiento de la cantidad de perros que pueden tener diferentes atributos como raza y edad. Si se utiliza una lista, el primer elemento podría ser la raza del perro, mientras que el segundo elemento podría representar su edad. Supongamos que hay 100 perros diferentes, entonces ¿cómo sabrías qué elemento se supone que es cuál? ¿Y si quisieras añadir otras propiedades a estos perros? A esto le falta organización y es la necesidad exacta de las clases.



Sintaxis: Definición de clase

class ClassName:  # Statement>

Sintaxis: Definición de objeto

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

La clase crea un definido por el usuario. Algunos puntos sobre la clase Python:



  • Las clases se crean mediante clase de palabra clave.
  • Los atributos son las variables que pertenecen a una clase.
  • Los atributos siempre son públicos y se puede acceder a ellos mediante el operador punto (.). Ej.: Mi clase.Miatributo

Creando una clase de Python

Aquí, la palabra clave class indica que está creando una clase seguida del nombre de la clase (Perro en este caso).

comando de windows arp
Python3
class Dog: sound = 'bark'>

Objeto de la clase Python

Un objeto es una instancia de una clase. Una clase es como un plano, mientras que una instancia es una copia de la clase con valores actuales . Ya no es una idea, es un perro real, como un perro de raza pug que tiene siete años. Puedes tener muchos perros para crear muchas instancias diferentes, pero sin la clase como guía, estarías perdido y no sabrías qué información se requiere.

Un objeto consta de:



  • Estado: Está representado por los atributos de un objeto. También refleja las propiedades de un objeto.
  • Comportamiento: Está representado por los métodos de un objeto. También refleja la respuesta de un objeto a otros objetos.
  • Identidad: Le da un nombre único a un objeto y permite que un objeto interactúe con otros objetos.

clase de pitón

Declarar objetos de clase (también llamado crear instancias de una clase)

Cuando se crea un objeto de una clase, se dice que la clase tiene una instancia. Todas las instancias comparten los atributos y el comportamiento de la clase. Pero los valores de esos atributos, es decir, el estado, son únicos para cada objeto. Una sola clase puede tener cualquier número de instancias.

Ejemplo:

Python declarando un objeto

Ejemplo de clase y objeto de Python

Crear un objeto en Python implica crear una instancia de una clase para crear una nueva instancia de esa clase. Este proceso también se conoce como creación de instancias de objetos.

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

Producción:

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

En el ejemplo anterior, se crea un objeto que es básicamente un perro llamado Rodger. Esta clase sólo tiene dos atributos de clase que nos dicen que Rodger es un perro y un mamífero.

Explicación :

En este ejemplo, estamos creando una clase Perro y hemos creado dos variables de clase. atributos1 y atributos2 . Hemos creado un método llamado divertido() que devuelve la cadena Soy un, {attr1} y soy un, {attr2}. Hemos creado un objeto de la clase Perro y lo estamos imprimiendo en el atributo1 del objeto. Finalmente, estamos llamando al divertido() función .

Autoparámetro

Cuando llamamos a un método de este objeto como myobject.method(arg1, arg2), Python lo convierte automáticamente en MyClass.method(myobject, arg1, arg2): todo esto es especial ser es sobre.

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

El Ser El parámetro no lo llama Self. Puede usar cualquier otro nombre en su lugar. Aquí cambiamos self por la palabra alguien y el resultado será el mismo.

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

Producción: La salida para ambos códigos será la misma.

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

Explicación:

En este ejemplo, estamos creando una clase GFG y hemos creado el nombre y empresa variables de instancia en el constructor. Hemos creado un método llamado Di hola() que devuelve la cadena Hola, mi nombre es + {nombre} + y trabajo en +{empresa}+. Hemos creado un objeto de clase persona y le pasamos el nombre. Juan y compañía GeeksForGeeks a la variable de instancia. Finalmente, estamos llamando al espectáculo() de la clase.

Declaración de aprobación

La ejecución del programa no se ve afectada por el aprobar La inacción de la declaración. Simplemente permite que el programa salte esa sección del código sin hacer nada. Se emplea con frecuencia cuando las restricciones sintácticas de Python exigen una declaración válida pero no se debe ejecutar ningún código útil.

Python3
class MyClass: pass>

método __init__()

El __caliente__ El método es similar a los constructores en C++ y Java . Los constructores se utilizan para inicializar el estado del objeto. Al igual que los métodos, un constructor también contiene una colección de declaraciones (es decir, instrucciones) que se ejecutan en el momento de la creación del objeto. Se ejecuta tan pronto como se crea una instancia de un objeto de una clase. El método es útil para realizar cualquier inicialización que desee realizar con su objeto.

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

Producción:

Hello, my name is Nikhil>

Explicación:

En este ejemplo, estamos creando una clase Persona y hemos creado una nombre variable de instancia en el constructor. Hemos creado un método llamado say_hi() que devuelve la cadena Hola, mi nombre es {nombre}. Hemos creado un objeto de clase persona y pasamos el nombre Nikhil a la variable de instancia. Finalmente, llamamos a say_hi() de la clase.

método __str__()

Python tiene un método particular llamado __cadena__() . que se utiliza para definir cómo clase El objeto debe representarse como una cadena. A menudo se usa para darle a un objeto una representación textual legible por humanos, lo cual es útil para registrar, depurar o mostrar a los usuarios información del objeto. Cuando se usa un objeto de clase para crear una cadena usando las funciones integradas print() y str(), el __cadena__() La función se utiliza automáticamente. Puedes alterar cómo los objetos de un clase se representan en cadenas definiendo el __cadena__() método.

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

Producción:

My name is John and I work in GeeksForGeeks.>

Explicación:

En este ejemplo, estamos creando una clase llamada GFG. En la clase, estamos creando dos variables de instancia nombre y empresa . En el método __str__() estamos devolviendo el nombre variable de instancia y compañía Instancia variable. Finalmente, estamos creando el objeto de la clase GFG y llamamos al método __str__().

Variables de clase e instancia

Variables de instancia son para datos, únicos para cada instancia y las variables de clase son para atributos y métodos compartidos por todas las instancias de la clase. Las variables de instancia son variables cuyo valor se asigna dentro de un constructor o método con self, mientras que las variables de clase son variables cuyo valor se asigna en la clase.

Definir variables de instancia usando un constructor.

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

Producción :

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ón:

Una clase llamada Perro se define con una variable de clase animal fijado al perro de cuerda. Las variables de clase son compartidas por todos los objetos de una clase y se puede acceder a ellas mediante el nombre de la clase. La clase de perro tiene dos variables de instancia. raza y color. Posteriormente vamos creando dos objetos del Perro class y estamos imprimiendo el valor de ambos objetos con una variable de clase llamada animal.

Definir variables de instancia usando el método normal:

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

Producción:

brown>

Explicación:

En este ejemplo, hemos definido una clase llamada Perro y hemos creado un variable de clase animal. Hemos creado una variable de instancia raza en el constructor . La clase Perro consta de dos métodos. establecerColor y obtenerColo r, se utilizan para crear e inicializar una variable de instancia y recuperar el valor de la variable de instancia. Hemos hecho un objeto de la Perro class y hemos establecido el valor de la variable de instancia en marrón y estamos imprimiendo el valor en la terminal.