Bienvenido a la Comunidad de Treehouse

¿Quieres colaborar en errores de código? ¿Tienes errores que necesitan comentarios? ¿Buscas un par de ojos adicionales en tu último proyecto? aquí.

¿Buscas aprender algo nuevo?

Treehouse ofrece una prueba gratuita de siete días para estudiantes nuevos. Obtén acceso a miles de horas de contenido y únete a miles de

Inicia tu prueba gratuita

Python Python Orientado a Objetos Básico Bienvenido a POO Agregando a nuestro Panda

Problemas con el desafío de métodos. Por favor ayuda

No estoy seguro de qué estoy haciendo mal aquí. Primero tenía una función print donde ahora está la función return y... no le gustó. Por favor ayuda.

panda.py
class Panda:
    especie = 'Ailuropoda melanoleuca'
    comida = 'bamboo'
    name = 'Bao Bao'

    def __init__(self, name, edad):
        self.is_hungry = Verdadero
        self.name = name
        self.edad = edad

    def eat(self):
        self.is_hungry = False
        return(f'{name} come {food}.')

2 Respuestas

Chris Freeman
Chris Freeman
68,469 puntos

Hola matthew mahoney, estás muy cerca. Dos errores para corregir:

  • el verificador busca un espacio después de la palabra clave return.
  • las referencias a atributos de instancia necesitan incluir "self": self.name y self.food

Los paréntesis dentro de una declaración return aún pueden ser válidos para agrupar el valor de retorno en varias líneas. Python perdona la ausencia de espacio antes del paréntesis de apertura, pero el verificador y PEP8 están en contra.

Publica de nuevo si necesitas más ayuda. ¡Buena suerte!

¡Muchas muchas gracias! esta es la respuesta a mi problema... ¡ahora tiene sentido!

Entonces return es una palabra clave y no una función. Además, return no envía nada a la salida estándar. Si quieres que ese valor se imprima, tendrías que hacer algo como:

sad_panda = Panda('sad', 1)
resultado = sad_panda.eat()
print(resultado)

# o

print(sad_panda.eat())

Además, probablemente no deberías tener name en el cuerpo de la clase y el __init__ método.

Espero que esto te ayude.