Maison > Article > développement back-end > Introduction détaillée à quatre méthodes magiques en Python
Les méthodes magiques de Python sont généralement nommées sous la forme de nom de méthode, telles que : init (méthode constructeur), getitem, setitem (méthode requise par subscriptable), delitem (méthode requise par del obj[key]), len (len( …) méthode requise), etc.
En Python, si nous voulons créer des classes similaires à des séquences et des mappages, nous pouvons les simuler en remplaçant les méthodes magiques getitem, setitem, delitem et len.
La fonction de la méthode magique :
getitem(self,key) : Renvoie la valeur correspondant à la clé.
setitem(self,key,value) : Définir la valeur de la clé donnée
delitem(self,key) : Supprimer l'élément correspondant à la clé donnée.
len() : Renvoie le nombre d'éléments
Exemple de code :
# coding:utf-8 ''' desc:尝试定义一种新的数据类型 等差数列 author:pythontab.com ''' class ArithemeticSequence(object): def init(self,start=0,step=1): print 'Call function init' self.start=start self.step=step self.myData={} # 定义获取值的方法 def getitem(self,key): print 'Call function getitem' try: return self.myData[key] except KeyError: return self.start+key*self.step # 定义赋值方法 def setitem(self,key,value): print 'Call function setitem' self.myData[key]=value # 定义获取长度的方法 def len(self): print 'Call function len' # 这里为了可以看出len的作用, 我们故意把length增加1 return len(self.myData) + 1 # 定义删除元素的方法 def delitem(self, key): print 'Call function delitem' del self.myData[key] s=ArithemeticSequence(1,2) print s[3] # 这里应该执行self.start+key*self.step,因为没有3这个key s[3] = 100 # 进行赋值 print s[3] # 前面进行了赋值,那么直接输出赋的值100 print len(s) # 我们故意多加了1,应该返回2 del s[3] # 删除3这个key print s[3] # 这里应该执行self.start+key*self.step,因为3这个key被删了
Résultat de sortie :
Call function init Call function getitem 7 Call function setitem Call function getitem 100 Call function len 2 Call function delitem Call function getitem 7
Le principe de ces magies méthodes est : lorsque nous inscrivons l'élément d'attribut d'une classe, il sera d'abord intercepté par getitem(), setitem() et delitem(), afin que nous puissions effectuer les opérations que nous avons définies dans la méthode, telles que l'attribution de valeurs, modification du contenu, suppression du contenu, etc. attendez.
[Recommandations associées]
1. Compréhension approfondie de la fonction spéciale __len__(self) en python
2. maître Peu de connaissances - Explication détaillée des exemples de len Python
3Résumé des exemples d'utilisation de la fonction len() en Python
4. Méthodes de classe spécifiques à Python Exemples de tutoriels utilisésCe 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!