Heim  >  Artikel  >  Backend-Entwicklung  >  Python-Lernagentenmodus

Python-Lernagentenmodus

little bottle
little bottlenach vorne
2019-04-28 11:22:282642Durchsuche

In diesem Artikel wird hauptsächlich die Implementierung des Proxy-Modus in Python vorgestellt. Er verwendet ein interessantes Beispiel zum Schreiben eines Demonstrationscodes, der für interessierte Freunde hilfreich sein kann.

Definition des Proxy-Musters: Stellen Sie einen Proxy für andere Objekte bereit, um den Zugriff auf dieses Objekt zu steuern. In einigen Fällen ist ein Objekt nicht geeignet oder kann nicht direkt auf ein anderes Objekt verweisen, und ein Proxy-Objekt kann als Vermittler zwischen dem Client und dem Zielobjekt fungieren.

Anwendungsszenarien des Proxy-Modus:

1. Remote-Proxy, d. h. Bereitstellung einer lokalen Darstellung für ein Objekt in verschiedenen Adressräumen. Dies verbirgt die Tatsache, dass ein Objekt in einem anderen Adressraum existiert.

2. Virtuelle Agenten sind kostspielige Objekte, die nach Bedarf erstellt werden müssen. Verwenden Sie es, um reale Objekte zu speichern, deren Instanziierung lange dauert. In HTML dauert das Laden von Bildern beispielsweise lange, daher werden virtuelle Agenten verwendet, um echte Bilder zu ersetzen.

3. Sicherheits-Proxy, gewohnt Kontrollieren Sie den Zugriff auf reale Objekte. Berechtigungen

4. Intelligente Führung bedeutet, dass der Agent andere Dinge erledigt, wenn das reale Objekt aufgerufen wird.

Zum Beispiel: Mann A mag Frau A, aber er traut sich nicht Daher wird Mann B als Agent beauftragt, in seinem Namen Geschenke an Frau A zu senden. Der entscheidende Punkt bei der Verwirklichung dieser Anforderung besteht darin, dass Mann A und Frau A keinen direkten Kontakt miteinander haben indirekter Kontakt durch den Agenten männlich 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()

Verwandte Tutorials: Python-Video-Tutorial

Das obige ist der detaillierte Inhalt vonPython-Lernagentenmodus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Vorheriger Artikel:Python-LernbeobachtermodusNächster Artikel:Python-Lernbeobachtermodus