Advertisement
teslariu

objetos

Feb 18th, 2022
586
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. #
  4. # Hasta ahora vimos Programación Procedimental: se estructura un programa
  5. # como una receta, nos proporciona un conjunto de pasos en forma de funciones
  6. # y bloques de código, que se completan secuencialmente para realizar una
  7. # tarea
  8.  
  9. # el paradigma de Programación orientada a objetos (POO) data de los años '70
  10. # Nos proporciona una forma de estructurar programas creando objetos
  11. # con determinadas propiedades y capacidades que modelen los objetos
  12. # de la vida real.
  13.  
  14. # POO modela entidades del mundo real como objetos de software con datos
  15. # asociados a ellos y QUE PUEDEN REALIZAR CIERTAS FUNCIONES.
  16.  
  17. # Por ejemplo, un objeto podrìa representar a una persona con propiedades
  18. # tales como nombre, edad, género, etc y comportamientos como hablar
  19. # caminar, dormir, estudiar, etc.
  20.  
  21. # CLASES, MÉTODOS, INSTANCIAS, ATRIBUTOS
  22.  
  23. # las clases se utilizan para crear estructuras de datos definidas por el
  24. # usuario. Las clases definen FUNCIONES llamadas METODOS, que son los comportamientos
  25. # la CLASE es un proyecto, una ABSTRACCION, un molde para crear objetos.
  26. # una INSTANCIA es un OBJETO EN PARTICULAR moldeado por la clase que
  27. # contiene datos reales y representa a un ente de la vida real. Las
  28. # propiedades de los objetos de denominan ATRIBUTOS
  29.  
  30. # NOTA: las funciones condoble guion bajo se denominan dunder o mágicos
  31.  
  32. '''
  33. class Perro:
  34.     """Primer ejemplo de clase, con el único método __init__"""
  35.     # Atributos de clase (tienen el mismo valor para todas las instancias)
  36.     especie = "Canis Familiaris"
  37.    
  38.     def __init__(self, nombre, edad):
  39.         """Funciòn para "construir" (o inicializar) el objeto"""
  40.         self.nombre = nombre
  41.         self.edad = edad
  42.  
  43.        
  44. # Creo dos instancias de la clase Perro
  45. sultan = Perro("sultan", 9)
  46. firulai = Perro("firulai", 4)
  47.  
  48. # para ver el nombre del objeto sultan
  49. print(sultan.nombre)
  50.  
  51. # imprimo la edad de firulai
  52. print(firulai.edad)
  53.  
  54. # accedo al atributo de clase
  55. print(sultan.especie)
  56. print(firulai.especie)
  57.  
  58. # Los objetos SON MUTABLES POR DEFAULT
  59. sultan.edad = 7
  60. print(sultan.edad)
  61.  
  62.  
  63. # reescribimos la clase Perrocon métodos de instancias
  64. class Perro:
  65.     """Primer ejemplo de clase, con el único método __init__"""
  66.     # Atributos de clase (tienen el mismo valor para todas las instancias)
  67.     especie = "Canis Familiaris"
  68.    
  69.     def __init__(self, nombre, edad):
  70.         """Funciòn para "construir" (o inicializar) el objeto"""
  71.         self.nombre = nombre
  72.         self.edad = edad
  73.        
  74.     def descripcion(self):
  75.         """Crea un método de instancia"""
  76.         return f"{self.nombre} tiene {self.edad} años de edad"
  77.        
  78.     def ladra(self, sonido):
  79.         """Crea otro método de instancia"""
  80.         self.sonido = sonido
  81.         return f"{self.nombre} dijo {self.sonido}"
  82.  
  83. # creo una instancia
  84. tronco = Perro("Tronco", 4)
  85.  
  86. # hago que el perro ladre
  87. print(tronco.ladra("WOOF WOOF"))
  88.  
  89. '''
  90. # Mejoremos la descripción con __str__
  91. class Perro:
  92.     """Primer ejemplo de clase, con el único método __init__"""
  93.     # Atributos de clase (tienen el mismo valor para todas las instancias)
  94.     especie = "Canis Familiaris"
  95.    
  96.     def __init__(self, nombre, edad):
  97.         """Funciòn para "construir" (o inicializar) el objeto"""
  98.         self.nombre = nombre
  99.         self.edad = edad
  100.        
  101.     def __str__(self):
  102.         """Crea un método de instancia"""
  103.         return f"{self.nombre} tiene {self.edad} años de edad"
  104.        
  105.     def ladra(self, sonido):
  106.         """Crea otro método de instancia"""
  107.         self.sonido = sonido
  108.         return f"{self.nombre} dijo {self.sonido}"
  109.  
  110. # creo una instancia
  111. tronco = Perro("Tronco", 4)
  112.  
  113. # imprimo la descripcion de Tronco
  114. print(tronco)
  115.    
  116. # Ej: crear una clase Auto con dos atributos de instancia color y
  117. # kilometraje. Instanciar dos autos, uno azul con 20000 kms y otro rojo
  118. # con 30000kms. Imprimir luego sus colores y kilometrajes
  119.  
  120. class Auto:
  121.     def __init__(self, color, kilometraje):
  122.         self.color = color
  123.         self.kilometraje = kilometraje
  124.        
  125. auto_azul = Auto("azul", 20_000)
  126.  
  127. # otra forma de crear una instancia
  128. auto_rojo = Auto(color="rojo", kilometraje=30_000)
  129.  
  130. for auto in (auto_azul, auto_rojo):
  131.     print(f"El auto {auto.color} tiene {auto.kilometraje} kms de uso")
  132.  
  133.        
  134.        
  135.        
  136.        
  137.    
  138.    
  139.    
  140.    
  141.    
  142.  
Advertisement
RAW Paste Data Copied
Advertisement