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

Chuwen Tan
Chuwen Tan
5,787 Puntos

¿No puedo escribir Panda.food en lugar de self.food?

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} come{Panda.food}

Mi idea era que food es un atributo de clase, no un atributo de instancia. ¿No puedo usar Panda.food en lugar de self.food? ¡Me gustaría saber la razón. ¡Gracias!

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} come{Panda.food}

1 Respuesta

Steven Parker
Steven Parker
244 163 puntos

En la práctica real, se puede acceder a las variables de clase desde dentro de un método por el nombre de la clase o por "self". El mecanismo de prueba del cuestionario está buscando específicamente una referencia a "self". Esto podría ser intencional para fomentar el uso de "self" tanto para variables de clase como de instancia.

Si crees que es solo un error en el curso, es posible que desees reportarlo a Soporte. Si están de acuerdo, te darán una "insignia especial de Exterminator". :beetle:

Chuwen Tan
Chuwen Tan
5,787 Puntos

Entendido. ¡Gracias Steven!