Programmation orientée objet
Des exemples de classes et
Classe est modèle abstrait
classe des étudiants (Object): passeclass
est immédiatement suivi d'un nom de classe, par exempleStudent
, le nom de classe est généralement le début du mot en majuscule, suivi(object)
,
représentent la classe qui est héritée de la baisse de la classe, le concept d'héritage derrière nous répéter que, en
général, Si aucune classe héritées appropriées, l' utilisation deobject
classe, ce qui est finalement toutes les classes classe héritée
Créer une instance de la classe se fait par nom + ()
Bart = >>> Étudiant () >>> bart < __main__ .Student objet à 0x10a67a590> # indique le point est un exemple de bart étudiants qui se cache derrière 0x10a67a590 est un exemple d'une adresse mémoire pour chaque adresse de mémoire n'est pas le même > >> Student < class ' dans __main __. Student ' >
Gratuit pour donner une propriétés de liaison variable d'instance telle que la liaison d'un nom à une instance propriété bart
>>> bart.name = ' Bart Simpson ' >>> bart.name ' Bart Simpson '
Nous croyons que certains des biens doit être liée obligatoire à remplir. En définissant un spécial __init__
procédé
classe des étudiants (Object) DEF __init__ (auto, nom, Partition): self.name = Nom self.score = Score
Remarque: méthode spéciale "__init__" Il y a deux underscores avant et après! !
A noté que le __init__
premier argument est toujours self
, en elle - même représentée par une instance est créée, par conséquent, les __init__
méthodes internes, nous pouvons mettre toutes sortes de biens est lié à self
, car self
elle pointe pour créer une instance de lui - même.
Avec la __init__
méthode, créer une instance dans le temps, vous ne pouvez pas passer un paramètre null, vous devez passer la __init__
méthode de mise en correspondance des paramètres, mais self
ne pas besoin de passer, lui - même interprète Python passera dans une variable d'instance:
encapsulation des données
classe Student (Object): DEF le __init__ (Auto, nom, Partition): le self.name = nom self.score = score DEF print_score (auto): Imprimer ( ' % S:% S ' % (le self.name, self.score )) pour définir un procédé, en plus du premier paramètre est en dehors de soi, et d' autres fonctions normales. Pour appeler une méthode, il vous suffit d'appeler directement les variables d'instance, en plus de l' auto ne passent pas, les autres paramètres normaux passés dans:
Restrictions d'accès
Au sein de la classe, et peuvent avoir des propriétés et des méthodes fournissent le code externe peut être des variables d'instance froide à l'intérieur hey méthode masque la complexité de l'opération de la logique interne
Cependant, la définition de la classe des élèves Vue avant, le code externe est libre de modifier un exemple d'un nom, attribut de partition
Si vous voulez que les attributs internes ne sont pas accessibles de l' extérieur, vous pouvez mettre avant le nom de la propriété ainsi que deux underscores __
, en Python, les noms de variables d'exemple , si le __
début, il devient une variable privée (privée) , seul l' accès interne, à l' extérieur ne peut pas accéder, nous avons donc modifié la catégorie des étudiants:
classe étudiant (objet): def __init__ (self, name, score): auto. __name = nom auto. __score = marquer def print_score (auto): print ( ' % s:% s ' .% (auto __name ., auto __score ))
Notez que, en Python, un nom de variable est similaire __xxx__
, et il commence par un double soulignement, double soulignement et à la fin, est une variable spéciale, variable spéciale qui peut être consulté directement , et non variables privées, par conséquent, ne peuvent pas être utilisés __name__
, __score__
si nom de la variable.