Cómo usar clases en Python

  Cómo usar clases en Python

Uno de los conceptos más complicados de entender como programador nuevo son las clases y los objetos. Una vez que sepa cómo usar las clases en Python, estará listo para crear un código mucho más poderoso y complejo.

Lea también: ¿Qué es la programación orientada a objetos?

¡Siga leyendo para aprender cómo usar las clases en Python y cuándo debería hacerlo!

Introducción a las clases en Python

Para aquellos que no están familiarizados con el concepto de clases y quieren saber más sobre cómo funcionan, siga leyendo. Si solo desea la sintaxis de las clases en Python, puede pasar a la siguiente sección.

Entonces, ¿qué es una clase? Una clase es un fragmento de código que describe un "objeto de datos". Este es un objeto tal como lo encuentra en el mundo real, excepto que no tiene una presencia tangible, ¡solo existe en el concepto!

Sin embargo, como los objetos reales, los objetos de datos pueden tener propiedades (tamaño, peso, altura, número de vidas, velocidad) y pueden tener funciones (avanzar, saltar, subir la temperatura, borrar).

En un juego de computadora, por ejemplo, un villano podría describirse en código como un objeto de datos. Esto haría un seguimiento de cuánta salud tenía el villano, dónde estaba en relación con el jugador y qué tan agresivo se comportaría. Por lo tanto, podríamos llamar a la función "disparar" de un villano para disparar balas, o su función "destruir" para eliminarlas del juego.

  Clases de Python

(¡Excepto que llamamos a las funciones "métodos" cuando aparecen dentro de clases en Python!)

Deberías usar tus rutinas gráficas para dibujar a esos tipos malos en la pantalla , basado en la información proporcionada por la clase.

Cuándo usar clases de Python

Si sabe cómo usar variables en Python, funciona de manera similar: excepto que en lugar de almacenar datos como un número entero, está almacenando información personalizada sobre un objeto que ha concebido.

Lea también: Cómo usar cadenas en Python

Lo mejor de las clases en Python es que pueden crear múltiples "instancias" de una sola cosa. Esto significa que solo tenemos que escribir una clase "BadGuy" para crear tantos villanos como individualmente.

¿Para qué más podrías usar clases en Python? Una clase podría usarse para describir una herramienta particular dentro de un programa, como un administrador de puntaje, o podría usarse para describir entradas en una base de datos de un cliente. Siempre que desee crear muchos ejemplos de la misma "cosa", o cuando quiera administrar código complejo de una manera modular y fácilmente exportable, las clases son una excelente opción.

Cómo usar clases en Python [19659007] Entonces, ahora que sabe cuál es el problema con las clases, es posible que se esté preguntando cómo usar las clases en Python.

Comenzar es relativamente simple, ¡debes amar Python! Creará una clase de la misma manera que crea una función, excepto que usará "class" en lugar de "def". Luego nombramos la clase, agregamos dos puntos y sangramos todo lo que sigue.

(Tenga en cuenta que las clases deben usar mayúsculas camel para diferenciarlas de las variables y funciones. Esto significa "BadGuy" y no "badGuy" o "bad_guy").

Lea también: Cómo definir una función de Python

Entonces, si quisiéramos crear una clase que representara a un enemigo en un juego de computadora, podría verse así:


  Clase BadGuy:
salud = 5
speed = 2 

Este villano tiene dos propiedades (variables) que describen su salud y velocidad de movimiento. Entonces, fuera de esa clase, necesitamos crear un objeto BadGuy antes de poder acceder a estas propiedades:


  bad_guy_one = BadGuy ()
imprimir (bad_guy_one.health)
print (bad_guy_one.speed) 

Tenga en cuenta que podríamos crear fácilmente un bad_guy_two y un bad_guy_three, ¡y luego mostrar cada una de sus propiedades!






  bad_guy_one = BadGuy ()
bad_guy_two = BadGuy ()
imprimir (bad_guy_one.health)
imprimir (bad_guy_two.health)
bad_guy_one.health - = 1
imprimir (bad_guy_one.health)
print (bad_guy_two.health) 

Aquí cambiamos el valor de salud de un chico malo, ¡pero no del otro! Hemos modificado una instancia del villano.

Comprender las instancias

Para aprovechar realmente el poder de las clases en Python, necesitamos comprender las instancias y los constructores . Si crea dos villanos de la misma clase BadGuy, cada uno de ellos es una "instancia".

Idealmente, podríamos querer crear dos villanos con diferente salud inicial. Además, es posible que deseemos modificar esa salud de dentro de de la clase BadGuy.

Para hacer esto, necesitamos un tipo especial de método (función en una clase) llamado "constructor".

El constructor se llama tan pronto como crea una nueva instancia de un objeto (cuando "crea una instancia" del objeto) y se usa principalmente para definir variables en relación con esa instancia específica de & # 39; objeto. Aunque, por supuesto, aquí también puedes hacer otras cosas: como enviar mensajes de bienvenida.

Entonces, por ejemplo:











  clase BadGuy:

def __init __ (uno mismo, salud, velocidad):
print ("¡Se ha creado un nuevo villano!")
self.health = salud
 self.speed = velocidad


bad_guy_one = BadGuy (5, 2)
bad_guy_two = BadGuy (3, 5)
imprimir (bad_guy_one.health)
print (bad_guy_two.health) 

Este código crea dos tipos malos. Uno es fuerte pero lento (5 de salud, 2 de velocidad), el otro es débil pero rápido (3, 5). Cada vez que se crea un nuevo villano, aparece un mensaje para decirnos qué sucedió.

El método constructor siempre se llama __ init__ y siempre tendrá "self" como primer argumento. Luego, puede pasar cualquier otro argumento que desee utilizar para configurar su objeto cuando lo inicialice por primera vez.

El término "yo" simplemente significa que cualquier cosa que uno esté haciendo se refiere a esa instancia específica del objeto.

Cómo usar funciones en clases en Python

Como se mencionó, una función en Python se conoce técnicamente como un método.

Podemos crear métodos dentro de una clase tal como normalmente creamos funciones, pero hay dos tipos diferentes de métodos:

  • Métodos de instancia
  • Métodos estáticos

Un método de instancia solo afectará al Instancia del objeto al que pertenece. Entonces, podemos usarlo como una forma más conveniente de dañar enemigos individuales:






















  clase BadGuy:

def __init __ (uno mismo, salud, velocidad):
print ("¡Se ha creado un nuevo villano!")
self.health = salud
self.speed = velocidad

def shoot_badguy (yo):
self.health - = 1
imprimir ("¡Ay!")


bad_guy_one = BadGuy (5, 2)
bad_guy_two = BadGuy (3, 5)

def display_health ():
imprimir (bad_guy_one.health)
imprimir (bad_guy_two.health)


display_health ()
bad_guy_one.shoot_badguy ()
display_health () 

Un método estático, por otro lado, está diseñado para funcionar globalmente. Para crear métodos estáticos, eliminamos el argumento "self" y en su lugar usamos el decorador @staticmethod justo encima del nombre del método.

En el siguiente ejemplo, creamos un método estático para generar un número aleatorio, luego restamos esta cantidad de la salud del enemigo. El método no necesita estar relacionado específicamente con la instancia de ese objeto, por lo que puede actuar como una función normal a la que tenemos acceso cuando usamos la clase.






























  clase BadGuy:

def __init __ (uno mismo, salud, velocidad):
print ("¡Se ha creado un nuevo villano!")
self.health = salud
self.speed = velocidad

@staticmethod
def generador_aleatorio ():
importación aleatoria
n = random.randint (1, 5)
volver n

def shoot_badguy (yo):
self.health - = self.random_generator ()
imprimir ("¡Ay!")



bad_guy_one = BadGuy (5, 2)
bad_guy_two = BadGuy (3, 5)

def display_health ():
imprimir (bad_guy_one.health)
imprimir (bad_guy_two.health)



display_health ()
bad_guy_one.shoot_badguy ()
display_health () 

Tenga en cuenta que también podemos usar la siguiente línea en cualquier parte de nuestro código para obtener un número aleatorio:

  print (bad_guy_two.random_generator ()) 

Si, por cualquier razón, queremos evitar esto sucede, así que simplemente prefija el nombre del método con un subrayado doble.

  @staticmethod
def __random_generator (): 

Esto es como crear un método privado en Python, y nos impedirá acceder al método fuera de esa clase.

Cerrar

Finalmente, lo último que podría querer hacer es poner la clase en un archivo separado. Esto mantendrá su código ordenado, al mismo tiempo que le permitirá compartir fácilmente las clases que ha creado entre proyectos.

Para hacer esto, simplemente guarde la clase como está en un nuevo archivo:

















  class BadGuy:

def __init __ (uno mismo, salud, velocidad):
print ("¡Se ha creado un nuevo villano!")
self.health = salud
self.speed = velocidad


@staticmethod
def __random_generator ():
importación aleatoria
n = random.randint (1, 5)
volver n


def shoot_badguy (yo):
self.health - = self .__ generador_aleatorio ()
print ("¡Ay!") 

Asegúrate de darle al archivo el mismo nombre que la clase. En este caso: "BadGuy.py" es el nombre del archivo. También debe guardarse en el mismo directorio donde guarda su archivo principal de Python.

Ahora puede acceder a la clase y todas sus propiedades y métodos desde cualquier otro script de Python:













  import BadGuy

bad_guy_one = BadGuy.BadGuy (5, 2)
bad_guy_two = BadGuy.BadGuy (3, 5)

def display_health ():
imprimir (bad_guy_one.health)
imprimir (bad_guy_two.health)



display_health ()
bad_guy_one.shoot_badguy ()
display_health () 

¡Y eso es todo! ¡Aquí se explica cómo usar las clases en Python! Esta es una habilidad extremadamente valiosa que te permitirá construir todo tipo de cosas asombrosas en el futuro.

En este punto, probablemente esté listo para llevar sus habilidades al siguiente nivel. Si es así, ¿por qué no prueba uno de estos fantásticos cursos en línea de Python:

Codificación con Python: Capacitación para aspirantes a desarrolladores le brindará una introducción completa a Python que lo llevará desde los conceptos básicos de codificación hasta las habilidades de alto nivel que prepárese para una carrera en el desarrollo de Python. Este curso generalmente cuesta $ 690 pero está disponible para los lectores de Android Authority por solo $ 49.

Alternativamente, puede ver cómo las clases encajan en el panorama general consultando nuestra guía completa para principiantes de Python: [19659068]

About MiReal

Compruebe también

El Arsenal de Android: Preferencias

💻 Instalación Agréguelo al archivo de la aplicación build.gradle : implementación & # 39; com.github.imangazalievm.material …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *