Python学习之代理模式

本篇文章主要介绍python实现代理模式,用了一个有趣的例子写了一个示范代码,具有一定参考价值,感兴趣的朋友可以了解一下,希望对您有帮助。

代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。

代理模式的应用场景:

1.远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。

2.虚拟代理,是根据需要创建开销大的对象。通过它来存放实例化需要很长时间的真是对象,例如html中,图片需要load很久,所以通过虚拟代理来代替真实的图片

立即学习“Python免费学习笔记(深入)”;

3.安全代理,用来控制真实对象访问时的权限

4.智能指引,是指当调用真实的对象时,代理处理另外一些事

举个栗子:男A喜欢女A,但是不敢向其表白,所以委托男B为代理,代他送礼物给女A,实现这个需求的重点是,男A和女A是不互相直接接触的,都是通过代理男B,实现间接接触。

#encoding=utf-8__author__ = 'kevinlu1010@qq.com'from abc import ABCMeta, abstractmethodclass FemaleA():    def __init__(self, name):        self.name = nameclass Male():    __metaclass__ = ABCMeta    @abstractmethod    def send_flower(self):        pass    @abstractmethod    def send_chocolate(self):        pass    @abstractmethod    def send_book(self):        passclass 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学习之代理模式的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2533121.html

(0)
上一篇 2025年3月5日 21:08:49
下一篇 2025年3月5日 02:09:37

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Python实现翻译软件

    本篇文章主要讲讲述了用Python实现翻译软件,超级实用,赶紧将代码收藏起来试试吧,希望对你学习Python有所启发哦! 前两天吃了平哥的一波狗粮,他给女朋友写了一个翻译软件,自己真真切切的感受到了程序员的浪漫。在学习requests请求的…

    2025年3月5日 编程技术
    200
  • python3学习之异常处理及文件的各种操作

    本篇文章主要讲述的是python3的异常处理以及文件的各种操作,具有一定的收藏价值,感兴趣的朋友可以了解一下,希望对你有所帮助。 异常处理:是为了避免程序因为一个小问题而导致程序终止 try: 可能出现异常的代码块 except: 立即学习…

    编程技术 2025年3月5日
    200
  • scrapy实现新浪微博爬虫

    本篇文章主要讲述了用scrapy实现新浪微博爬虫,具有一定的参考价值,感兴趣的朋友可以了解一下 ,看完不妨自己去试试哦! 最近因为做毕设的原因,需要采集一批数据。本着自己动手的原则,从新浪微博上采集到近百位大家耳熟能详的明星14-18年的微…

    2025年3月5日 编程技术
    200
  • python怎么写图形界面gui

    python最大的特点就在于她的快速开发功能。作为一种胶水型语言,python几乎可以渗透在我们编程过程中的各个领域。这里我简单介绍一下用 python进行gui开发的一些选择。 这三种是Python常用的GUI开发库: Tkinter: …

    2025年3月5日
    200
  • Python的用户登录接口编制以及实现流程图

    本篇文章将和大家分享的代码是关于python的用户登录接口编制,以及其实现流程图,感兴趣的朋友可以了解一下,希望能对你有所帮助。 实现代码如下: # Author: Steven Zeng”’作业:编写登录接口输入用户名密码认证成功后显示…

    2025年3月5日
    200
  • Python学习之图解变量与赋值

    Python是一门独特的语言,与C语言有很大区别,初学Python很多萌新表示对变量与赋值不理解,学过C的都知道,给变量赋值时,需要先指定数据类型,同时会开辟一块内存区域,用于存储值,例如: inta =1; a 就是内存空间中的一小块区域…

    2025年3月5日 编程技术
    200
  • 如何用Python实现微信消息防撤回

    微信(WeChat)是腾讯公司于2011年1月21日推出的一款社交软件,今天将带大家了解一下用Python实现微信防撤回,感兴趣的朋友可以了解一下。 一、背景介绍 产品的更新迭代必然会伴随着功能的推出和下线,今天我们要讲的便是微信在2014…

    2025年3月5日 编程技术
    200
  • python的解释器是什么?

    python解释器是解释python脚本执行的程序,当开发者在编写python代码保存后,就会得到一个以“.py”为扩展名的文本文件,若要运行此文件,就需要python解释器去执行“.py”文件。 python解释器是解释python脚本执…

    2025年3月5日
    200
  • python是什么语言写的?

    python是C语言编写的。python是一种面向对象的动态类型语言,它的底层是用C语言写的,很多标准库和第三方库也都是用C语言写的;Python解释器易于扩展,可以使用C语言或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。…

    2025年3月5日
    200
  • python能做什么工作

    学习python能做的工作有:1、软件开发;2、数据挖掘;3、游戏开发;4、大数据分析;5、Python Web网站工程师;6、系统运维;7、Python自动化测试等等。 推荐:《python教程》 python是一门很好的编程语言,很多人…

    2025年3月5日
    200

发表回复

登录后才能评论