Maison >développement back-end >Tutoriel Python >Mode agent d'apprentissage Python

Mode agent d'apprentissage Python

little bottle
little bottleavant
2019-04-28 11:22:282663parcourir

Cet article présente principalement l'implémentation du mode proxy en Python. Il utilise un exemple intéressant pour écrire un code de démonstration, qui a une certaine valeur de référence. J'espère que cela vous sera utile.

Définition du modèle de proxy : Fournissez un proxy pour d'autres objets afin de contrôler l'accès à cet objet. Dans certains cas, un objet ne convient pas ou ne peut pas référencer directement un autre objet, et un objet proxy peut servir d'intermédiaire entre le client et l'objet cible.

Scénarios d'application du mode proxy :

1. Proxy distant, c'est-à-dire fournir une représentation locale d'un objet dans différents espaces d'adressage. Cela masque le fait qu'un objet existe dans un espace d'adressage différent.

2. Les agents virtuels sont des objets coûteux à créer selon les besoins. Utilisez-le pour stocker des objets réels qui mettent beaucoup de temps à s'instancier. Par exemple, en HTML, les images mettent beaucoup de temps à se charger, donc des agents virtuels sont utilisés pour remplacer les images réelles

3. Proxy de sécurité, utilisé pour. contrôler l'accès aux objets réels Autorisations

4. Le guidage intelligent signifie que lorsque l'objet réel est appelé, l'agent gère d'autres choses

Par exemple : l'homme A aime la femme A, mais il n'ose pas pour lui avouer. Par conséquent, l'homme B est chargé en tant qu'agent d'envoyer des cadeaux à la femme A en son nom. Le point clé pour réaliser cette exigence est que l'homme A et la femme A n'ont pas de contact direct l'un avec l'autre. contact indirect par l'intermédiaire de l'agent mâle B.

#encoding=utf-8
__author__ = 'kevinlu1010@qq.com'
from abc import ABCMeta, abstractmethod

class FemaleA():
    def __init__(self, name):
        self.name = name

class Male():
    __metaclass__ = ABCMeta

    @abstractmethod
    def send_flower(self):
        pass

    @abstractmethod
    def send_chocolate(self):
        pass

    @abstractmethod
    def send_book(self):
        pass

class MaleA(Male):
    def __init__(self, name, love_female):
        self.name = name
        self.love_female = FemaleA(love_female)

    def send_flower(self):
        print '%s送花给%s' % (self.name, self.love_female.name)

    def send_chocolate(self):
        print '%s送巧克力给%s' % (self.name, self.love_female.name)

    def send_book(self):
        print '%s送书给%s' % (self.name, self.love_female.name)


class Proxy(Male):
    def __init__(self, name, proxyed_name, love_female):
        self.name = name
        self.proxyed = MaleA(proxyed_name, love_female)

    def send_flower(self):
        self.proxyed.send_flower()

    def send_chocolate(self):
        self.proxyed.send_chocolate()

    def send_book(self):
        self.proxyed.send_book()

if __name__ == '__main__':
    p = Proxy('男B', '男A', '女A')
    p.send_book()
    p.send_chocolate()
    p.send_flower()

Tutoriels associés : Tutoriel vidéo Python

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer