8
votes

Django Modèles et attributs de classe Python

Le tutoriel sur le site Web Django affiche ce code pour les modèles: xxx

maintenant, chacun de ces attributs, est un attribut de classe, non? Donc, le même attribut doit être partagé par toutes les instances de la classe. Un peu plus tard, ils présentent ce code: xxx

Comment sont-ils passés d'attributs de classe par exemple des attributs? Ai-je tort d'attributs de classe?


0 commentaires

4 Réponses :


2
votes

C'est fait avec des métaclasses - des trucs très intelligents. Je recommanderais l'excellent livre Pro Django de Marty Alchin si vous voulez en savoir plus.


0 commentaires

6
votes

Regardez la classe modèle sous Django / dB / modèles.py. Là, les attributs de classe sont tournés vers des attributs d'instance via quelque chose comme xxx

one peut recommander le fichier complet ( modelbase et modèle modèle un excellent exemple de mains sur les métaclasses.


0 commentaires

2
votes

dans Python, un attribut de classe est toujours un attribut d'instance:

class C(object):
    a = 1
    def show_a(self):
        print self.a # <- works


0 commentaires

0
votes

une instance de classe a un espace de noms mis en œuvre comme un dictionnaire qui est la première place dans laquelle l'attribut Les références sont recherchées.

http://docs.python.org/reference/datamodel.html


0 commentaires