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

No sé qué estoy haciendo mal

Intento agregar lo que creo que se supone que debo hacer y el mensaje de error no me está ayudando, ¿me ayudas?

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

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

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

    def check_if_hungry(self):
        if is_hungry == Verdadero:
            self.eat()


panda = Panda('Bao Bao', '5')

1 Respuesta

Chris Freeman
Chris Freeman
68,469 puntos

Hola gabrielalcaraz¡estás TAN cerca!

Un atributo de instancia debe ser referenciado usando self., como en self.is_hungry. La variable is_hungry no está definido.

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

La programación parece una montaña cuando en realidad estás subiendo una colina, se siente difícil y cuando ves la respuesta te sientes como un idiota

Chris Freeman
Chris Freeman
68,469 puntos

Es difícil de detectar porque is_hungry no es estrictamente un nombre de variable indefinida hasta que se ejecuta el código. Si is_hungry fue definido a nivel de módulo, el código se ejecutaría. Si no está definido, genera una NameError. Con la práctica, naturalmente te preguntarás dónde se define cada variable (local para el método, local para la clase, local para el módulo, o globalmente).

Todos, incluso los maestros de Treehouse, han cometido y detectado este error en la programación.