Maison >développement back-end >Tutoriel Python >La différence entre les objets de classe Python et les objets d'instance

La différence entre les objets de classe Python et les objets d'instance

(*-*)浩
(*-*)浩original
2019-07-05 10:21:467137parcourir

Objets de classe et objets d'instance

La différence entre les objets de classe Python et les 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!

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