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

Sigo recibiendo error de nombre

Sigue diciendo que 'name' no está definido, pero no tengo idea de cómo definirlo como "Bao Bao". No funcionará si pongo el nombre "Bao Bao" en la cadena, entonces ¿qué estoy haciendo mal?

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

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

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

2 Respuestas

Travis Alstrand
sello-máscara
.a{fill-rule:evenodd;}techdegree seal-36
Travis Alstrand
Revisor de Proyectos Treehouse

¡Estás muy cerca!

Necesitaremos mover la is_hungry = False línea arriba y encima de la return línea aunque. Ya que será código inalcanzable si está debajo. Una vez que algo se devuelve, esa función dejará de ejecutarse y el código debajo no se ejecutará.

Ya estás configurando la name propiedad perfectamente en tu __init__ método, "Bao Bao" es solo lo que la prueba del back end enviará cuando intente crear un nuevo Panda. Para acceder a las name y food propiedades en esa línea de retorno aunque, necesitaremos usar self. 👍

class Panda:
    especie = 'Ailuropoda melanoleuca'
    comida = 'bamboo'

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

    def eat(self):
        if self.is_hungry:
            self.is_hungry = False
            return f'{self.name} eats {self.food}.'
Steven Parker
Steven Parker
244 163 puntos

La mayoría de las sugerencias de Travis son buenas, pero el método "eat" no necesita probar nada. Siempre debería hacer lo mismo cuando se llama.

En el siguiente paso, construirás otro método que será use un condicional.