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
=
a
self
.b
=
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
=
a
self
.b
=
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