Objets de classe et objets d'instance
Courte théorie : (Apprentissage recommandé : Tutoriel vidéo Python)
Un objet de classe résume et résume les objets avec des attributs et des méthodes similaires dans un objet de classe. Des attributs et des méthodes similaires peuvent être définis. Différents objets d'instance font référence aux attributs et aux méthodes de l'objet de classe, ce qui peut réduire le taux de duplication. de code.
Les objets instances sont également appelés objets instanciés. Ils ne sont pas abstraits mais un objet spécifique dans une classe d'objets.
Compréhension métaphorique :
Je crois que certaines personnes trouvent cela un peu déroutant, je vais donc l'expliquer avec une métaphore ici, j'espère que vous pourrez comprendre. Tout d’abord, il faut comprendre qu’en python, « tout est objet ». Compréhension personnelle :
Les objets de classe sont comme un panier de « fruits ». Les fruits dans le panier ne sont pas répétés, alors les « fruits » dans le panier appartiennent à la même classe et sont abstraits, comme quelqu'un l'a dit. à vous "Donnez-moi un fruit", votre première réaction doit être "Quel fruit ?", elle est donc incertaine.
L'objet instance, comme la "pomme" dans le panier, est un objet spécifique, c'est-à-dire une instance. Je pense que quelqu'un vous a dit "Donnez-moi une pomme", vous ne voulez probablement pas choisir quel fruit
class Main_class_dll(): def __init__(self): dllName = "SessionConnector.dll" dllABSPath = os.path.dirname(os.path.abspath(__file__)) + os.path.sep + dllName self.dll = cdll.LoadLibrary(dllABSPath) self.session_id='' def int_create_(self): self.dll.Init.restype = c_bool sign = self.dll.Init() def Create_Session(self,ip,port): self.dll.CreateSession.argtypes=[c_char_p,c_char_p] #输入参数的格式 self.dll.CreateSession.restype = c_int; #输出参数的格式 self.session_id = self.dll.CreateSession(ip,port); def send_recv(self,buf): time.sleep(2) self.dll.SendSessionMsg.restype = c_bool; self.dll.SendSessionMsg.argtypes=[c_int,c_char_p,c_uint] ret = self.dll.SendSessionMsg(self.session_id, buf, len(buf) + 1); self.dll.RecvSessionMsg.argtypes=[c_int,c_char_p,c_uint,c_int] self.dll.RecvSessionMsg.restype = c_bool; recv_buf = create_string_buffer(1024); ret = self.dll.RecvSessionMsg(self.session_id, recv_buf, 1024, 3000); self.dll.DestroySession.restype = c_bool; ret = self.dll.DestroySession(self.session_id); return recv_buf.value
Un objet de classe est un objet qui peut être directement représenté par le nom de la classe. Il prend en charge deux opérations. , utilisation et instanciation d'attributs directs. Pour utiliser les attributs de classe, utilisez simplement class name.attribute directement. Pour utiliser les méthodes de classe, vous devez instancier un objet et lui attribuer le nom de l'objet, comme indiqué ci-dessous :
class test: data = 1 def __init__(self): self.property=0 def test2(self): print 'hello' if __name__=='__main__': t = test() print test.data print t.data print test.test2 print t.test2() print test.test2(t)
Pour plus d'articles techniques liés à Python, veuillez visiter le Tutoriel Python rubrique Étudiez !
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!