Saltar al contenido
Closer Marketing

Guía de introducción a la programación orientada a objetos (OOP) de Python

La programación es un arte. De la misma con el arte, escoger el pincel y el color correctos es vital para crear el mejor trabajo. La programación basada en objetos en Python es una de esas habilidades.

Escoger el lenguaje de programación correcto es una sección importante de un emprendimiento y puede conducir a un desarrollo interesante y sin inconvenientes o a una perfeccionada pesadilla. En consecuencia, es preferible usar el lenguaje mucho más correspondiente para su caso de uso.

Esta es la razón principal para estudiar programación orientada a elementos en Python, que asimismo es uno de los lenguajes de programación mucho más populares.

¡Estudiemos!

Ejemplo de Python

Antes de sumergirnos en esto, la pregunta es: ¿alguna vez escribió un Python como este?

secret_number = 20
 
while True:
   number = input('Guess the number: ')
 
   try:
       number = int(number)
   except:
       print('Sorry that is not a number')
       continue
 
   if number != secret_number:
       if number > secret_number:
           print(number, 'is greater than the secret number')
 
       elif number < secret_number:
           print(number, 'is less than the secret number')
   else:
       print('You guessed the number:', secret_number)
       break

Este código es una guía numérica simple. Intente copiarlo en un archivo de Python y ejecutarlo en su sistema. Hace el trabajo a la perfección.

Pero aquí está la gran pregunta: ¿qué pasa si le pedimos que introduzca una nueva función? Puede ser simple, por ejemplo:

"Si la información es múltiple de la contraseña, pregúntele al usuario".

A medida que aumenta el número total de actividades y las condiciones anidadas, el programa se vuelve rápidamente complejo y aburrido.

Este es exactamente el problema que la programación orientada a objetos está tratando de resolver.

La programación es un arte y se necesitan las herramientas adecuadas para construir cosas hermosas🎨 Lea más sobre la programación orientada a objetos en Python👇Haga clic en el tweet

Requisitos para aprender Python OOP

Antes de comenzar con la programación orientada a objetos, le recomendamos que se familiarice con los conceptos básicos de Python.

Puede resultar difícil clasificar los temas clasificados como básicos. Con esto en mente, hemos creado una hoja de estafas que contiene todos los conceptos clave necesarios para aprender programación orientada a objetos en Python.

  • Cambio: Un nombre simbólico que se refiere a un objeto específico (vemos objeto Medios según el artículo).
  • Símbolo aritmético: Suma (+), resta (-), multiplicación
  • , División (/), división entera (//), módulo (%). Tipos de datos integrados:
  • Números (enteros, números de coma flotante, números complejos), secuencias (cadenas, listas, conjuntos), valores booleanos (verdadero, falso), diccionarios y cantidades. Expresión booleana: El resultado de la expresión verdadero Cualquiera
  • Incorrecto. Condicional: Evaluar la expresión booleana y realizar el procesamiento en función del resultado. Si algo mas
  • Opinión. Anillo: Repita el bloque de código si es posible Por Cualquiera a pesar de que
  • Ciclo. Misión: Bloques de código organizados y reutilizables; los creas con palabras clavedefinición
  • . Parámetro: sum([1, 2, 4])
  • El objeto se pasó a la función. Por ejemplo:Ejecute la secuencia de comandos de Python
  • : Abra un sufijo o línea de comando y escriba "python". en . "Abra el shell de Python python : Abra la terminal e ingrese python3 Cualquiera

Depende de su sistema.

Ahora que tiene una comprensión clara de estos conceptos, puede comprender mejor la programación orientada a objetos.

¿Qué es la programación orientada a objetos en Python?

La programación orientada a objetos (OOP) es un paradigma de programación en el que podemos tratar problemas complejos como objetos.

El paradigma es una teoría que proporciona una base para resolver problemas.

Por tanto, cuando hablamos de POO, nos referimos a varios conceptos y modelos para resolver problemas de objetos.

La calculadora puede ser un objeto.

La calculadora puede ser un objeto.

Puede encontrar que los datos (atributos) son siempre sustantivos y las funciones (métodos) son siempre verbos.

Esta división es el concepto básico de la programación orientada a objetos. Creas objetos que almacenan datos y que contienen ciertos tipos de funciones.

¿Por qué usamos programación orientada a objetos en Python?

Con OOP, puede crear software seguro y confiable. Muchos frameworks y bibliotecas de Python utilizan este paradigma para construir su base de código. Algunos ejemplos son Django, Kivy, Pandas, NumPy y TensorFlow.

Veamos los principales beneficios de usar OOP en Python.

Beneficios de Python OOP

Las siguientes razones lo llevarán a utilizar la programación orientada a objetos en Python.

Todos los lenguajes de programación modernos usan OOP

Este paradigma no tiene nada que ver con el lenguaje. Una vez que aprenda OOP en Python, puede usarlo en las siguientes áreas:

Todos estos lenguajes están orientados a objetos de forma nativa o contienen alternativas a las funciones orientadas a objetos. Si desea aprender alguno de estos después de Python, es más fácil: encontrará muchas similitudes entre los lenguajes que manejan objetos.

Puede codificar más rápido con OOP

Una codificación más rápida no significa escribir menos líneas de código. Esto le permite implementar más actividades en menos tiempo sin afectar la estabilidad del proyecto.

La programación dirigida permite reutilizar el código mediante la implementación de resúmenes. Este principio hace que su código sea más estrecho y más fácil de leer.

Como sabrá, los programadores pasan mucho más tiempo leyendo código que escribiendo código.  Por esta razón, la legibilidad es siempre más importante que implementar funciones lo más rápido posible.

El código poco claro conduce a una menor productividad

El código poco claro conduce a una menor productividad

Más información sobre principios abstractos se puede encontrar más adelante.

OOP ayuda a evitar los códigos estilo espagueti

¿Recuerda el programa de adivinación de números al principio de este artículo? Cuando agrega funcionalidad, tiene muchos Si

Opinión futura. Esta mezcla interminable de líneas de código se llama código espagueti y debe evitarlo siempre que sea posible. OOP nos permite comprimir todas las lógicas de un objeto y así evitar anidar partes largasEn el caso de

.

OOP mejora el análisis de cada situación

Cuando tenga algo de experiencia en OOP, podrá manejar los problemas como objetos pequeños y especiales.

Esta comprensión conduce a una rápida inicialización del proyecto.

Programación estructurada y programación orientada a objetos

La programación estructurada es el paradigma más común para los principiantes porque es la forma más fácil de crear programas pequeños.

Implica ejecutar programas de Python de uno en uno. Es decir, le das a la computadora una lista de tareas y luego las haces de arriba a abajo.

small = 2
regular = 5
big = 6
 
user_budget = input('What is your budget? ')
 
try:
   user_budget = int(user_budget)
except:
   print('Please enter a number')
   exit()
 
if user_budget > 0:
   if user_budget >= big:
       print('You cánido afford the big coffee')
       if user_budget == big:
           print('It's complete')
       else:
           print('Your change is', user_budget - big)
   elif user_budget == regular:
       print('You cánido afford the regular coffee')
       print('It's complete')
   elif user_budget >= small:
       print('You perro buy the small coffee')
       if user_budget == small:
           print('It's complete')
       else:
           print('Your change is', user_budget - small)

Observemos un caso de muestra de programación estructurada con un programa de café.

El código anterior actúa como distribuidor de café. Le pregunta sobre su presupuesto y le “vende” el más destacable café que puede comprar.

Intente ejecutarlo en una terminal. Se realiza punto por punto en función de sus entradas.

  1. Este código funciona bien, pero poseemos tres problemas:
  2. Tiene mucha lógica repetitiva. Emplea mucho anidamiento Si
  3. Cláusula condicional.

Puede ser bien difícil de leer y cambiar.

OOP se inventó para solucionar todos estos problemas.

class Coffee:
        # Constructor
        def __init__(self, name, price):
                self.name = name
                self.price = float(price)
        def check_budget(self, budget):
                # Check if the budget is valid
                if not isinstance(budget, (int, float)):
                        print('Enter float or int')
                        exit()
                if budget < 0: 
                    print('Sorry you don't have money') 
                    exit() 
        def get_change(self, budget):
                return budget - self.price
        
        def sell(self, budget):
                self.check_budget(budget)
                if budget >= self.price:
                        print(f'You cánido buy the self.name coffee')
                        if budget == self.price:
                                print('It's complete')
                        else:
                                print(f'Here is your change self.get_change(budget)$')

                        exit('Thanks for your transaction')

Veamos el programa previo que se implementó con la ayuda de OOP. Si aún no lo recibe, no se preocupe. Solo se emplea para llevar a cabo programación estructurada y programación de comparación orientada a elementos. Comentario:

Todos los conceptos siguientes se explican con mucho más detalle en este artículo. El código anterior significa un clase

Llámalo "café". Tiene dos atributos: "nombre" y "precio", que se usan en los métodos. El método más esencial es "Vender", que se ocupa de toda la lógica necesaria para llenar el desarrollo de ventas.

Si intenta llenar esta clase, no conseguirá nada. Esto hay que primordialmente a que solo notificamos el "modelo" de café, no el café en sí.

small = Coffee('Small', 2)
regular = Coffee('Regular', 5)
big = Coffee('Big', 6)
 
try:
   user_budget = float(input('What is your budget? '))
except ValueError:
   exit('Please entrar a number')
  
for coffee in [big, regular, small]:
   coffee.sell(user_budget)

El siguiente código se utiliza para llevar a cabo este tipo: Lo hacemos aqui Ejemplo

O productos de café que forman parte a la categoría Café y luego utilizar el procedimiento de venta para cada tipo de café hasta el momento en que el usuario pueda permitirse todas y cada una de las opciones.

Vamos a usar dos maneras de obtener el mismo resultado, pero tenemos la posibilidad de emplear la programación orientada a objetos para expandir el programa. mejores funciones.

La próxima tabla equipara la programación orientada a objetos y la programación estructurada: Programación apuntada
Programación estructurada Más simple de mantener
Bien difícil de mantener, no repita el procedimiento (seco) Copia el código en múltiples sitios
Pequeños extractos de código que se reutilizan en varios sitios. Bastante código en varios lugares
Método de objeto Procedimiento de código de bloque
Depuración mucho más fácil Depuración más bien difícil
Enorme curva de aprendizaje Curva de aprendizaje más simple
Para grandes proyectos Mejorado como un programa fácil

Para resumir la comparación de paradigmas:

  • Ninguno de los paradigmas es perfecto (el uso de OOP en proyectos simples puede ser abrumador).
  • Estas son solo dos maneras de resolver el inconveniente, hay otras.
  • La programación orientada a objetos se utiliza para plantillas de código grandes, al tiempo que la programación estructurada se usa principalmente para proyectos simples.

Los elementos integrados de Python todavía se están opinando.

Todo en Python es un objeto

Te contamos un misterio: usaste OOP sin darte cuenta.

Incluso si emplea otros paradigmas en Python, todavía utiliza objetos para casi cualquier cosa.

Esto se debe a Python todos Es un elemento.

Piense en la definición de un elemento: un elemento en Python es una compilación única de información (atributos) y comportamiento (métodos).

Esto se ajusta a cualquier clase de datos de Python.

Las cadenas son información (caracteres) y comportamiento (Superior (), reducir()y mucho más ..) Lo mismo es verdad Entero, flotador, Valor booleano, Lista, Y un diccionario.

Antes de continuar, veamos los significados de las propiedades y los métodos.

Propiedades y métodos

La propiedad es interna variable Dentro del objeto y el método es función Ese accionar.

Al hacer un ejercicio simple en un shell de Python, puede abrirlo escribiendo python Alguno python3 En tu terminal.

Shell de Python 3.9 que se ejecuta en Linux

Shell de Python

En este momento use el shell de Python para buscar métodos y tipos.

>>> kinsta="Kinsta, Premium WordPress hosting"
>>> kinsta.upper()
'KINSTA, PREMIUM WORDPRESS HOSTING'

En la segunda línea llamamos al método de cadena, Superior ()Devuelve el contenido de la cadena en mayúsculas. No obstante, no cambia la variable original.

>>> kinsta
'Kinsta, Premium WordPress hosting'

En el momento en que tratamos con objetos, nos sumergimos en características valiosas.

Esta Tipos () Puede utilizar funciones para conseguir un tipo de objeto. "Tipo" es la categoría a la que forma parte el objeto.

>>> type(kinsta)
# class 'str'

Esta Darte () La función devuelve todas las características del objeto y los métodos usados. Kinsta Cambio.

>>> dir(kinsta)
['__add__', '__class__',  ........... 'upper', 'zfill']

En este momento intente imprimir ciertos atributos ocultos para este objeto.

 >>> kinsta.__class__ # class ‘str’ e>

Esto produce un elemento de clase Kinsta Solo podemos decir tipos Lo que devuelve la función es __Clase__ Atributos de objeto.

Puede experimentar con todos los tipos de datos y hallar todas sus características y métodos de manera directa desde la terminal. Para conseguir mucho más información sobre los tipos de datos internos, consulte la documentación oficial.

Tu primer producto en Python

Una suerte de clase Como un modelo. Le permite crear objetos customizados basados ​​en las propiedades y métodos que defina.

Puedes meditar en ello Mismo Cambian para hornear cookies completas (objetos, no cookies de seguimiento) con propiedades definidas: forma, tamaño, etcétera.

Por otro lado, tenemos Ejemplo. Un ejemplo es un solo objeto en una clase con una dirección de memoria única.

Categorías de múltiples instancias de cookies, Cookie1, Cookie2 y Cookie3

Ejemplos de Python

Ahora que sabe qué categorías e instancias son, definamos algunas.

Puede precisar una clase en Python utilizando clase La palabra clave y su nombre, creando una categoría llamada galletas.

Comentario: En Python, utilizamos la convención de nomenclatura Camel-Case para nombrar clases.

class Cookie:
	pass

Abra el shell de Python y escriba el código de arriba. Para crear una instancia de una clase, sencillamente escriba el nombre y los paréntesis tras eso. Este es exactamente el mismo desarrollo que llamar a una función.

cookie1 = Cookie()

¡Felicitaciones, acaba de crear su primer objeto en Python! Puede verificar el ID e ingresarlo con el siguiente código:

id(cookie1)
140130610977040 # Unique identifier of the object

type(cookie1)


Como puede ver, esta cookie tiene un identificador único en la memoria y su tipo es galletas.

Asimismo puede usar el siguiente comando para asegurarse de que el objeto sea una instancia de la clase isInstance () Función.

isinstance(cookie1, Cookie)
# True
isinstance(cookie1, int)
# False
isinstance('a string', Cookie)
# False

Procedimiento de construcción

Esta __Adentro__() Los métodos también se denominan "constructores". Cada vez que pasamos un elemento llamado Python.

El constructor utiliza el grupo de factores mucho más pequeño que debe existir para crear el estado inicial del objeto; editarlo galletas Class, por lo que acepta parámetros en su constructor.

class Cookie:
	# Constructor
	def __init__(self, name, shape, chips="Chocolate"):
		# Instance attributes
		self.name = name
		self.shape = shape
		self.chips = chips

Adentro galletas En la clase, cada cookie debe tener un nombre, formato y fragmentos. La última pluralidad se define como "chocolate".

Por otro lado, Propio Se refiere a la ocurrencia de la clase (el objeto en sí).

Intente poner la clase en un sobre y crear un ejemplo de galleta de la forma habitual.

cookie2 = Cookie()
# TypeError

Va a recibir un mensaje de fallo. Esto se debe a que debe proporcionar la menor información viable para que el objeto sobreviva, en un caso así Apellido y diseño Pues contratamos Distrito de negociación "Chocolate".

cookie2 = Cookie('Awesome cookie', 'Star')

Para utilizar características de instancia, debe utilizar una notación de puntos.

cookie2.name
# 'Awesome cookie'
cookie2.shape
# 'Star'
cookie2.chips
# 'Chocolate'

Ahora mismo galletas No hay nada jugoso en la clase, se añade un procedimiento de ejemplo hornear() Haz las cosas más interesantes.

class Cookie:
	# Constructor
	def __init__(self, name, shape, chips="Chocolate"):
		# Instance attributes
		self.name = name
		self.shape = shape
		self.chips = chips

	# The object is passing itself as a parameter
	def bake(self):
		print(f'This self.name, is being baked with the shape self.shape and chips of self.chips')
		print('Enjoy your cookie!')

Si quiere llamar a un procedimiento, use una notación de puntos y llámelo como una función.

cookie3 = Cookie('Baked cookie', 'Tree')
cookie3.bake()
# This Baked cookie, is being baked with the shape Tree and chips of Chocolate
Enjoy your cookie!

Los 4 pilares de la programación orientada a objetos en Python

La programación apuntada comprende 4 pilares principales:

1. Resumen

La abstracción oculta las características de la Aplicación interna en oposición al usuario. Los clientes pueden ser clientes del servicio finales u otros desarrolladores.

Podemos encontrar abstracto En nuestra vida diaria. Por poner un ejemplo, sabe de qué forma emplear su teléfono, pero es posible que no sepa qué le sucede toda vez que abre la app.

Otro ejemplo es el propio Python. Sabe de qué forma emplearlo para crear programa que ande, pero si no comprende de qué manera marcha Python desde adentro, puede hacerlo.

Al aplicar el mismo código, puede catalogar todos los elementos en cuestión y abstracto Funciones de clase estándar.

2. Herencia

Heritage nos permite definir múltiples Classe baja De una categoría ya definida.

Su objetivo primordial es realizar el principio DRY. Al llevar a cabo todos los componentes compartidos, puede volver a utilizar una gran cantidad de código Muy divertido.

Puedes pensar en ello como un término en la vida real. Herencia genéticaUna subcategoría (subcategoría) es el resultado de una herencia entre dos supercategorías (supercategorías). Hereda todas y cada una de las propiedades físicas (atributos) y ciertos patrones comunes de accionar (métodos).

3. Polimorfismo

El polimorfismo nos deja cambiar de manera fácil métodos y propiedades. Classe baja Definido anteriormente Muy agradable.

Verdaderamente significa "Muchas formas. “Esto se debe a que desarrollamos métodos tener exactamente el mismo nombre pero funciones distintas.

Volviendo a la idea previo, los pequeños también son un ejemplo perfecto de polimorfismo; tienen la posibilidad de heredar un accionar definido hambriento() Pero de una forma ligeramente diferente, por servirnos de un ejemplo, hambriento cada 4 horas cada 6 horas.

Bulto 4

La encapsulación es nuestro desarrollo para proteger la integridad interna de los datos de la clase.

Eso no Privado Para las normas de Python, puede emplear la encapsulación empleando Pyang Mangling; hay formas concretas de nombrarlo Adquiridor y setter Proporciona acceso a funcionalidades y métodos únicos.

Piensa un a la raza humana Una categoría con un atributo único _elevadoPuede cambiar esta función solo con algunas restricciones (una altura de sobra de 3 metros es prácticamente irrealizable).

Calculadora de analizador sintáctico de forma de sitio de construcción

Una de las mejores cosas de Python es que nos permite hacer toda clase de programa, desde programas de plataforma de trabajo de línea de comandos (CLI) hasta aplicaciones web complejas.

Ahora que entiende los conceptos del pilar OOP, es hora de aplicarlos a proyectos de todo el mundo real.

Comentario: Todos y cada uno de los códigos ahora están disponibles en este fichero de GitHub. Una herramienta de revisión de código para asistirnos a regentar versiones de código usando Git.

Su tarea es hacer una calculadora de rango como esta:

  • plaza de la región
  • rectángulo
  • triángulo
  • circulo
  • exágono

Forma clase básica

Primero crea un fichero Calculadora.py Y ábralo pues ahora disponemos un elemento para editar, es muy fácil abstracto Tú andas en clase.

Puedes investigar las similitudes y localizarlas Forma bidimensionalEntonces es mejor crear una clase diseño Usa el procedimiento get_area () Cualquier forma hereda de ella.

Comentario: Todos los métodos han de ser verbos; esto se debe a que este procedimiento se llama get_area () No es Región ().

class Shape:
	def __init__(self):
		pass

	def get_area(self):
		pass

El código anterior define la clase, pero todavía no posee nada de interés.

Se incorporan la mayor parte de las funcionalidades estándar de estos formularios.

class Shape:
	def __init__(self, side1, side2):
		self.side1 = side1
		self.side2 = side2

	def get_area(self):
		return self.side1 * self.side2

	def __str__(self):
		return f'The area of this self.__class__.__name__ is: self.get_area()'

Especifiquemos qué hacemos con este código:

  • Adentro __Adentro__ Procedimiento, pedimos 2 factores, Página 1 y Página 2Estos permanecen Atributos de instancia.
  • Esta get_area () La función devuelve el rango de formas. En un caso así, se emplea una fórmula de área de área cuadrado por el hecho de que es más simple de implementar con otras formas.
  • Esta __str __ () El método es un "procedimiento mágico" __Adentro__(). Puede cambiar cómo se imprime la instancia.
  • Esta usted mismo .__ clase __.__ nombre__ El atributo oculto está asociado con los nombres de las clases si comienza con un. trabajar triángulo Categoría, atributo es "triángulo".

rectángulo

Dado que hemos implementado la fórmula del área rectangular, tenemos la posibilidad de llevarlo a cabo fácil rectángulo Excepto heredado diseño Clase.

Utilizar herencia En Python, creas una clase y la rodeas de la manera habitual Muy divertido Quiere cargar entre paréntesis.

# Folded base class
class Shape: ...
 
class Rectangle(Shape): # Superclass in Parenthesis
	pass

Fangban

Tenemos la posibilidad de ir por el buen sendero Polimorfismo y plaza de la ciudad Clase.

Ten en cuenta que un cuadrado es solo un rectángulo donde los cuatro lados son iguales. Esto quiere decir que tenemos la posibilidad de utilizar exactamente la misma fórmula para obtener el área.

Podemos cambiar Adentro Método, admite solo uno del lado de Como parámetro y pasar el valor de la página a la dirección rectángulo Clase.

# Folded classes
class Shape: ...
class Rectangle(Shape): ...
 
class Square(Rectangle):
	def __init__(self, side):
		super().__init__(side, side)

Como puede ver, existe la superfunción del lado de Parámetros dos veces Muy agradableEn otras expresiones, pasa del lado de Más allá de que Página 1 y Página 2 Vaya al constructor definido antes.

Clase triangular

El tamaño de un triángulo es medio rectángulo que lo circunda.

La relación entre un triángulo y un rectángulo.

Relación entre triángulos y rectángulos (Fuente de la imagen: Varsity Tutors).

En consecuencia, podemos cobrar rectángulo Categoría y edición Conseguir un área El procedimiento es exactamente el mismo que la fórmula del área del triángulo, que es la base multiplicada por media altura.

# Folded classes
class Shape: ...
class Rectangle(Shape): ...
class Square(Rectangle): ...
 
class Triangle(Rectangle):
	def __init__(self, base, height):
		super().__init__(base, height)
 
	def get_area(self):
		area = super().get_area()
		return area / 2

Otro caso de uso Increíble() La función se define en la llamada Muy divertido Y guarde el resultado como una variable, por lo que sucedió dentro get_area () Método.

Clase redonda

Puedes usar la fórmula para localizar el área de un círculo. , Donde R. Es el radio del círculo, quiere decir que tenemos que cambiar get_area () Cómo llevar a cabo la fórmula.

Comentario: Tenemos la posibilidad de importar valores aproximados Pi Sobre el módulo de matemáticas

# Folded classes
class Shape: ...
class Rectangle(Shape): ...
class Square(Rectangle): ...
class Triangle(Rectangle): …
 
# At the start of the file
from math import pi
 
class Circle(Shape):
	def __init__(self, radius):
		self.radius = radius
 
	def get_area(self):
		return pi * (self.radius ** 2)

El código anterior define circulo Una clase que utiliza una pluralidad de constructores y get_area () Método.

más allá de que circulo Heredado diseño Puede reconfigurar cada procedimiento y asociarlo a sus necesidades.

Hexágono regular

Solo requerimos un exágono regular para calcular la longitud del lado del lado, es similar a plaza de la región Una clase que pasamos a un solo generador de factores.

Fórmula de área hexagonal

Fórmula del área hexagonal (Fuente de la imagen: BYJU'S)

No obstante, la fórmula es completamente diferente, o sea, use raíces cuadradas, de ahí que la emplea Plaza de la región () Funcionalidades del módulo de matemáticas.

# Folded classes
class Shape: ...
class Rectangle(Shape): ...
class Square(Rectangle): ...
class Triangle(Rectangle): …
class Circle(Shape): …
 
# Import square root
from math import sqrt
 
class Hexagon(Rectangle):
	
	def get_area(self):
		return (3 * sqrt(3) * self.side1 ** 2) / 2

Prueba nuestro curso

Puede cambiar al modo interactivo en el momento en que ejecuta un fichero Python con un depurador. La forma más simple es usar la función de corte incorporada.

Comentario: Esta función solo está libre en Python 3.7 o posterior.

from math import pi, sqrt
# Folded classes
class Shape: ...
class Rectangle(Shape): ...
class Square(Rectangle): ...
class Triangle(Rectangle): …
class Circle(Shape): …
class Hexagon(Rectangle): …
 
breakpoint()

En este momento ejecute el archivo python y use la clase que creó.

$ python calculator.py
 
(Pdb) rec = Rectangle(1, 2)(Pdb) print(rec)
The area of this Rectangle is: 2
(Pdb) sqr = Square(4)
(Pdb) print(sqr)
The area of this Square is: 16
(Pdb) tri = Triangle(2, 3)
(Pdb) print(tri)
The area of this Triangle is: 3.0
(Pdb) cir = Circle(4)
(Pdb) print(cir)
The area of this Circle is: 50.26548245743669
(Pdb) hex = Hexagon(3)
(Pdb) print(hex)
The area of this Hexagon is: 23.382685902179844

Desafío

Crea una clase empleando el procedimiento Correr El usuario puede seleccionar una forma y calcular su rango.

Una vez que se completa el desafío, puede mandar una solicitud de apuesta al repositorio de GitHub o divulgar su solución en la sección de comentarios.

¿Andas listo para aprender programación orientada a elementos en Python? "Andas justo aquí"Haga clic en el tweet

Generalizar

La programación dirigida es el pensamiento en el que miramos los inconvenientes objetoSi está familiarizado con Python OOP, puede utilizarlo de forma fácil en lenguajes como Java, PHP, Javascript y C #.

En el presente artículo aprenderá:

  • Concepto destinado a objetos en Python
  • Propiedades de la programación estructurada y orientada a elementos
  • Conceptos básicos de la programación objetiva en Python
  • concepto clase Y de qué manera emplearlos en Python
  • Esta constructor Una clase en Python
  • procedimiento y Atributos En Python
  • Los 4 pilares de la POO
  • Llevar a cabo abstracto, Herencia, y Polimorfismo En el proyecto

¡Todo es tu trabajo en este momento!

¡Cuéntanos la solución a los próximos retos en los comentarios! No olvide leer la guía de comparación entre Python y PHP.


Si le agrada este producto, le encantará la interfaz de alojamiento Kinsta WordPress. Mejore su página web y consiga soporte 24/7 de nuestro experimentado equipo de WordPress. Nuestra infraestructura de Google plus Cloud se enfoca en la escalabilidad, el desempeño y la seguridad. ¡Vamos a mostrarte lo diferente que es Kinsta! Ver plan

Deja una respuesta

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