Imprimir objetos de una clase en Python

Un objeto es una instancia de una clase. Una clase es como un modelo, mientras que una instancia es una copia de la clase con valores reales. Cuando se crea un objeto de una clase, se dice que la clase está instanciada. 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.

Consulte los artículos a continuación para tener una idea sobre las clases y los objetos en Python.

Los objetos de impresión nos dan información sobre los objetos con los que estamos trabajando. En C++, podemos hacer esto agregando un método de ostream&operador amigo para la clase. << (ostream&, const Foobar&)En Java, usamos el toString()método. En Python, esto se puede lograr mediante el uso de métodos __repr__o . se usa si necesitamos información detallada para la depuración, mientras que se usa para imprimir una versión de string para los usuarios.__str____repr____str__

Ejemplo:

# Python program to demonstrate
# object printing
  
  
# Defining a class
class Test: 
    def __init__(self, a, b): 
        self.a = a 
        self.b = b 
      
    def __repr__(self): 
        return "Test a:% s b:% s" % (self.a, self.b) 
    
    def __str__(self): 
        return "From str method of Test: a is % s, " \ 
              "b is % s" % (self.a, self.b) 
  
# Driver Code         
t = Test(1234, 5678) 
  
# This calls __str__() 
print(t) 
  
# This calls __repr__() 
print([t])

Producción:

From str method of Test: a is 1234, b is 5678
[Test a:1234 b:5678]

Puntos importantes sobre la impresión:

  • Python usa el __repr__método si no hay ningún __str__método.

    Ejemplo:

    class Test: 
        def __init__(self, a, b): 
            self.a =
            self.b =
        
        def __repr__(self): 
            return "Test a:% s b:% s" % (self.a, self.b) 
        
    # Driver Code         
    t = Test(1234, 5678
    print(t)

    Producción:

    Test a:1234 b:5678
    
  • Si no se define ningún método __repr__, se usa el predeterminado.

    Ejemplo:

    class Test: 
        def __init__(self, a, b): 
            self.a =
            self.b =
        
    # Driver Code         
    t = Test(1234, 5678
    print(t)  

    Producción:

    <__main__.Test object at 0x7f9b5738c550>
    

Publicación traducida automáticamente

Artículo escrito por nikhilaggarwal3 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 *