>  기사  >  백엔드 개발  >  Python 학습 에이전트 모드

Python 학습 에이전트 모드

little bottle
little bottle앞으로
2019-04-28 11:22:282589검색

이 기사는 주로 Python의 프록시 모드 구현을 소개합니다. 흥미로운 예제를 사용하여 특정 참조 가치가 있는 데모 코드를 작성하는 것이 도움이 되기를 바랍니다.

프록시 패턴 정의: 다른 객체에 대한 프록시를 제공하여 이 객체에 대한 액세스를 제어합니다. 어떤 경우에는 한 개체가 적합하지 않거나 다른 개체를 직접 참조할 수 없으며 프록시 개체가 클라이언트와 대상 개체 사이의 중개자 역할을 할 수 있습니다.

프록시 모드의 적용 시나리오:

1. 원격 프록시, 즉 서로 다른 주소 공간에 있는 개체에 대한 로컬 표현을 제공합니다. 이는 개체가 다른 주소 공간에 존재한다는 사실을 숨깁니다.

2. 가상 에이전트는 필요에 따라 생성하기에는 비용이 많이 드는 개체입니다. 인스턴스화하는 데 시간이 오래 걸리는 실제 개체를 저장하는 데 사용합니다. 예를 들어 HTML에서는 그림을 로드하는 데 시간이 오래 걸리므로 실제 그림을 대체하는 데 가상 에이전트가 사용됩니다.

3. 실제 개체에 액세스하는 동안 권한을 제어하는 ​​데 사용됩니다

4. 지능적인 안내는 실제 개체가 호출되면 에이전트가 다른 작업을 처리한다는 의미입니다

예: 남성 A가 여성 A를 좋아합니다. , 그러나 나는 그녀에게 내 감정을 감히 표현할 수 없었기 때문에 남성 B에게 나의 대리인 역할을 맡기고 그를 대신하여 여성 A에게 선물을 보내도록 맡겼습니다. 그들은 모두 남성 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()

관련 튜토리얼: Python 비디오 튜토리얼

위 내용은 Python 학습 에이전트 모드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제