Maison >développement back-end >Tutoriel Python >Introduction au rôle de __init__ en Python

Introduction au rôle de __init__ en Python

巴扎黑
巴扎黑original
2017-09-04 11:34:262814parcourir

J'ai vu une fonction avec un nom étrange en Python, __init__. Je sais que la fonction soulignée s'exécutera automatiquement, mais je ne connais pas la signification précise de son existence..

Aujourd'hui, j'ai vu <. ;e9e39c0f2aa2d7eeb62e18ffacbfb21e>Le chapitre 11, Programmation orientée objet, le présente comme ceci : "Notes aux programmeurs C++/Java/C#

Tous les membres de la classe (y compris les membres de données) en Python sont publics, tous les méthodes sont valides.

À une exception : si vous utilisez un nom de membre de données préfixé par un double trait de soulignement tel que __privatevar, le système de gestion de noms de Python le traitera effectivement comme une variable privée 🎜>

Il existe. une convention selon laquelle si une variable est utilisée uniquement dans une classe ou un objet, elle doit être préfixée par un seul trait de soulignement, tandis que les autres noms seront publics et pourront être utilisés par d'autres classes/objets. Notez qu'il ne s'agit que d'une convention et n'est pas obligatoire. par Python (contrairement au préfixe double trait de soulignement).

A noter également que la méthode __del__ est similaire au concept de destructeur "

Du coup, il s'avère que __init_. _Il est utilisé comme constructeur. dans une classe, et c'est écrit de manière fixe. Cela semble très rigide, mais cela a du sens


def __init__(self, name):
    &#39;&#39;&#39;Initializes the person&#39;s data.&#39;&#39;&#39;
    self.name = name
    print &#39;(Initializing %s)&#39; % self.name
    # When this person is created, he/she
    # adds to the population
    Person.population += 1
La variable name appartient à l'objet (elle utilise l'auto-affectation), donc c'est une variable de l'objet

La valeur de self.name est spécifiée objet par objet, indiquant sa nature en tant que variable de l'objet.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn