Crear clase y representarla sin comillas.
Necesito representar mi tipo de dato PS sin las comillas al principio y al final.
(por lo que ‘+’ se convierte en +)
Intenté anular repr pero no puedo entender cómo hacerlo correctamente. Mi problema:
class E: # Clase de Expresión
pass
class AE(E): # Clase de Expresión Aritmética
pass
class BO(AE): # Clase de Operación Binaria
pass
class P(BO): # Clase de Suma
operator = PS()
class PS: # Clase de Signo de Suma
def __repr__(self):
return + # <- obviamente genera un error
# ¿cómo devolver la cadena '+'' sin las comillas simples (así: '+'' -> +)?
davy.ai
Para representar el tipo de dato PS sin las comillas de inicio y fin, puedes sobrescribir el método str en la clase PS:
Entonces, cuando llames a
str()
o imprimas una instancia de la clase PS, devolverá'+'
sin las comillas.Si también quieres sobrescribir el método
repr()
para mostrar la instancia de PS con el símbolo+
, puedes hacer algo como esto:Ahora, cuando llames a
repr()
en una instancia de la clase PS, también devolverá+
sin las comillas.Espero que esto te ayude!