Maison  >  Article  >  développement back-end  >  Explication sur l'utilisation du destructeur et du constructeur python

Explication sur l'utilisation du destructeur et du constructeur python

巴扎黑
巴扎黑original
2017-07-17 16:10:142863parcourir
class Test(object):
    def __init__(self, name):
        self.name = name
        print('这是构造函数')

    def say_hi(self):
        print('hell, %s' % self.name)

    def __del__(self):
        print('这是析构函数')

obj = Test('bigberg')

obj.say_hi()

del obj

#输出
  这是构造函数


  hello bigberg


  这是析构函数

 

Constructeur

Utilisé pour initialiser l'état de contenu de la classe, le constructeur fourni par Python est __init__( ) , c'est-à-dire que cette fonction sera exécutée lorsque la classe est instanciée. La méthode __init__() est facultative si elle n'est pas fournie, Python donnera la méthode __init__ par défaut.

Destructeur

"__del__" est un destructeur Lorsque vous utilisez del pour supprimer un objet, son propre destructeur sera appelé de plus, lorsque l'objet Après avoir été. appelé dans une certaine portée, le destructeur sera appelé une fois en sortant de sa portée, ce qui peut être utilisé pour libérer de l'espace mémoire.

__del__() est également facultatif. S'il n'est pas fourni, Python fournira un destructeur par défaut en arrière-plan

Si vous souhaitez appeler explicitement le destructeur, vous pouvez utiliser le mot-clé del : del obj.
Mécanisme de récupération de place 
s = '123'
print('del...running')
del s

Lorsque nous utilisons del pour supprimer un objet, la mémoire de l'objet n'est pas directement effacée. . Python utilise un algorithme de « comptage de références » pour gérer le recyclage, c'est-à-dire : lorsqu'un objet n'est plus référencé par d'autres objets dans sa portée, Python efface automatiquement l'objet.

Et le destructeur __del__() effacera automatiquement l'espace mémoire de l'objet supprimé lorsqu'il sera référencé.

Constructeur :

est utilisé pour initialiser l'état de contenu de la classe. Le constructeur fourni par Python est __init__();

.

Autrement dit, cette fonction sera exécutée lorsque la classe sera instanciée. Ensuite, nous pouvons mettre en premier les propriétés à initialiser dans cette fonction. Le programme suivant :

Explication sur lutilisation du destructeur et du constructeur python

La méthode __init__() est facultative. Si elle n'est pas fournie, Python donnera la méthode __init__ par défaut

Données générales Récupérez le get et le set. méthodes qu'il faut définir


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