Saltar al contenido

¿Python tiene prototipos de clase (o declaraciones directas)?

Posterior a buscar en varios repositorios y sitios finalmente encontramos la respuesta que te compartiremos a continuación.

Solución:

En realidad, todas las anteriores son excelentes observaciones sobre Python, pero ninguna de ellas resolverá su problema.

Django necesita introspeccionar cosas.

los Correcto forma de hacer lo que quieres es la siguiente:

class Car(models.Model):
    manufacturer = models.ForeignKey('Manufacturer')
    # ...

class Manufacturer(models.Model):
    # ...

Tenga en cuenta el uso del nombre de la clase como un string en lugar de la referencia de clase literal. Django ofrece esta alternativa para lidiar exactamente con el problema de que Python no proporciona declaraciones de avance.

Esta pregunta me recuerda la clásica pregunta de soporte que siempre debes hacerle a cualquier cliente con un problema: “¿Qué estás De Verdad ¿Intentando hacer?”

En Python no creas un prototipo per se, pero necesitas entender la diferencia entre “clase attributes” y nivel de instancia attributes. En el ejemplo que has mostrado arriba, estás declarando una clase attribute en la clase B, no a nivel de instancia attribute.

Esto es lo que estás buscando:

class B():
    def __init__(self):
        self.c = C()

Esto resolvería su problema tal como se presenta (pero creo que realmente está buscando una instancia attribute como respondió jholloway7):

class A:
    pass

class B:
    pass

class C:
    pass

B.c = C()

Más adelante puedes encontrar las notas de otros creadores, tú igualmente tienes el poder dejar el tuyo si lo crees conveniente.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *