Temas de nivel intermedio de Python3

Después de repasar los conceptos básicos de python , le interesará saber más sobre temas más avanzados del lenguaje de programación Python3.
Este artículo los cubre.
Recuerde que Python funciona completamente con sangría y se recomienda practicarlo un poco ejecutando algunos programas. Use la tecla de tabulación para proporcionar sangría a su código.

Este artículo se divide en las siguientes cinco secciones:

  1. Clases
    Al igual que cualquier otro lenguaje de programación orientado a objetos, Python admite clases. Veamos algunos puntos sobre las clases de Python.
    • Las clases se crean mediante la palabra clave class .
    • Los atributos son las variables que pertenecen a la clase.
    • Los atributos son siempre públicos y se puede acceder a ellos mediante el operador de punto (.). Ej.: Miclase.Miatributo

    Una muestra, por ejemplo, para las clases:

    # creates a class named MyClass
    class MyClass:  
            # assign the values to the MyClass attributes
            number = 0       
            name = "noname"
      
    def Main():
            # Creating an object of the MyClass. 
            # Here, 'me' is the object
            me = MyClass() 
      
            # Accessing the attributes of MyClass
            # using the dot(.) operator   
            me.number = 1337    
            me.name = "Harssh"
      
            # str is an build-in function that 
            # creates an string
            print(me.name + " " + str(me.number))
         
    # telling python that there is main in the program.
    if __name__=='__main__':  
            Main()

    Producción :

    Harssh 1337
    
  2. Métodos
    Método es un montón de código que está destinado a realizar una tarea particular en el código de Python.
    • La función que pertenece a una clase se llama Método.
    • Todos los métodos requieren el parámetro ‘auto’ . Si ha codificado en otro lenguaje OOP, puede pensar en ‘self’ como la palabra clave ‘this’ que se usa para el objeto actual. Muestra la variable de instancia actual. ‘self’ funciona principalmente como ‘this’.
    • La palabra clave ‘def’ se usa para crear un nuevo método.

    # A Python program to demonstrate working of class
    # methods
      
    class Vector2D:
            x = 0.0
            y = 0.0
      
            # Creating a method named Set
            def Set(self, x, y):     
                    self.x = x
                    self.y = y
      
    def Main():
            # vec is an object of class Vector2D
            vec = Vector2D()   
             
            # Passing values to the function Set
            # by using dot(.) operator.
            vec.Set(5, 6)       
            print("X: " + str(vec.x) + ", Y: " + str(vec.y))
      
    if __name__=='__main__':
            Main()

    Producción :

    X: 5, Y: 6
  3. Herencia La
    herencia se define como la forma en que una clase en particular hereda características de su clase base. La clase base también se conoce como ‘Superclase’ y la clase que hereda de la Superclase se conoce como ‘Subclase’

    Inheritance
    Como se muestra en la figura, la clase Derivada puede heredar características de su clase base, y también puede definir sus propias características.

    # Syntax for inheritance
      
    class derived-classname(superclass-name)

    # A Python program to demonstrate working of inheritance
    class Pet:
            #__init__ is an constructor in Python
            def __init__(self, name, age):     
                    self.name = name
                    self.age = age
      
    # Class Cat inheriting from the class Pet
    class Cat(Pet):         
            def __init__(self, name, age):
                    # calling the super-class function __init__ 
                    # using the super() function
                    super().__init__(name, age) 
      
    def Main():
            thePet = Pet("Pet", 1)
            jess = Cat("Jess", 3)
              
            # isinstance() function to check whether a class is 
            # inherited from another class
            print("Is jess a cat? " +str(isinstance(jess, Cat)))
            print("Is jess a pet? " +str(isinstance(jess, Pet)))
            print("Is the pet a cat? "+str(isinstance(thePet, Cat)))
            print("Is thePet a Pet? " +str(isinstance(thePet, Pet)))
            print(jess.name)
      
    if __name__=='__main__':
            Main()

    Producción :

    Is jess a cat? True
    Is jess a pet? True
    Is the pet a cat? False
    Is thePet a Pet? True
    Jess
    
  4. Iteradores
    Los iteradores son objetos sobre los que se puede iterar.
    • Python usa el método __iter__() para devolver un objeto iterador de la clase.
    • El objeto iterador luego usa el método __next__() para obtener el siguiente elemento.
    • for loops se detiene cuando se genera StopIteration Exception.

    # This program will reverse the string that is passed
    # to it from the main function
    class Reverse:
        def __init__(self, data):
            self.data = data
            self.index = len(data)        
      
        def __iter__(self):
            return self
          
        def __next__(self):
            if self.index == 0:
                raise StopIteration    
            self.index-= 1
            return self.data[self.index]
      
    def Main():
        rev = Reverse('Drapsicle')
        for char in rev:
            print(char)
      
    if __name__=='__main__':
        Main()

    Producción :

    e
    l
    c
    i
    s
    p
    a
    r
    D
    
  5. Generadores
    • Otra forma de crear iteradores.
    • Utiliza una función en lugar de una clase separada
    • Genera el código de fondo para los métodos next() e iter()
    • Utiliza una declaración especial llamada yield que guarda el estado del generador y establece un punto de reanudación para cuando se vuelve a llamar a next().

    # A Python program to demonstrate working of Generators
    def Reverse(data):
        # this is like counting from 100 to 1 by taking one(-1) 
        # step backward.
        for index in range(len(data)-1, -1, -1):
            yield data[index]
      
    def Main():
        rev = Reverse('Harssh')
        for char in rev:
            print(char)
        data ='Harssh'
        print(list(data[i] for i in range(len(data)-1, -1, -1)))
      
    if __name__=="__main__":
        Main()

    Producción :

    h
    s
    s
    r
    a
    H
    ['h', 's', 's', 'r', 'a', 'H']
    

Este artículo es una contribución de Harsh Wardhan Chaudhary (pasante) . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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