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

Creando métodos en clases.

Hola, tengo problemas con esta pregunta del cuestionario. ¿Por qué ocurre un error de sintaxis en el método def eat que estoy intentando crear? Además, no estoy seguro de dónde debería definir el atributo de nombre del panda, así que lo puse dentro del cuerpo del atributo de clase, lo que probablemente no tiene sentido. ¿Algún consejo?

Gracias. :)

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


    def __init__(self):
        self.is_hungry = Verdadero

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

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

1 Respuesta

Chris Freeman
Chris Freeman
68,469 puntos

Hola Andrew Lynford, el error está en tus referencias de atributos.

Atributo dentro de una clase instancia necesita el self. prefijo. Este es el propósito del primer parámetro self. Hace la conexión desde el código que se está ejecutando actualmente y las instancias a las que pertenece.

  • cambia name a self.name1 y food a self.food

También, el verificador es muy exigente con el espaciado. Debe haber un espacio después de return. No es una función, por lo que los paréntesis no son necesarios. Los paréntesis están permitidos si se agrupa una declaración compleja.

Vuelve a publicar si necesitas más ayuda. ¡Buena suerte!