当前位置: 首页 > news >正文

怎么建设门户网站做网站 教程

怎么建设门户网站,做网站 教程,免费空间 网站,网站设计网站建设专业分类目录:《系统学习Python》总目录 在《系统学习Python——装饰器》系列文章中,我们的大多数示例都设计来拦截函数和实例创建调用。这对于装饰器来说很典型,但是它们并不限于这一角色。因为装饰器通过装饰器代码来运行新的函数和类&#xff…

分类目录:《系统学习Python》总目录


在《系统学习Python——装饰器》系列文章中,我们的大多数示例都设计来拦截函数和实例创建调用。这对于装饰器来说很典型,但是它们并不限于这一角色。因为装饰器通过装饰器代码来运行新的函数和类,从而有效地工作,它们也可以用来管理函数和类对象自身,而不只是管理对它们随后的调用。

例如,假设我们需要将被另一个应用程序使用的方法或类注册到一个API上,以便随后处理(可能该API会调用该对象以响应事件)。我们可以提供一个注册函数,在对象定义之后手动地调用该函数,但装饰器使得你的意图更为明显。

这一思路的一种简单实现如下,其中定义了一个装饰器,它既应用于函数也应用于类,并把对象添加到一个基于字典的注册表中。由于它返回对象本身而不是一个包装器,因此它没有拦截随后的调用:

registry = {}
def register(obj):registry[obj.__name__] = objreturn obj@register
def square(x):return x**2@register
def cube(x):return x**3@register
class Eggs:def __init__(self, x):slf.data = xdef __str__(self):return str(self.data)for name in registry:print(name, '=>', registry[name])

输出:

square => <function square at 0x00000267F2E36700>
cube => <function cube at 0x00000267F49B3790>
Eggs => <class '__main__.Eggs'>

当这段代码运行的时候,被装饰的对象按照名称添加到注册表中,但当随后调用它们的时候,它们仍然按照最初的编写方式工作,而没有指向一个包装器层。实际上,我们的对象可以手动运行,或从注册表内部运行。

例如,一个用户界面可能使用这样的技术,为用户动作注册回调处理程序。处理程序可能通过数或类名来注册,就像这里所做的一样,或者可以使用装饰器参数来指定主体事件;包围装饰器的一条额外的def语句可能会用来保持这样的参数以便在装饰时使用。

这个例子是编造的,但是其技术很通用。例如,函数装饰器也可能用来处理函数属性,并且类装饰器可能动态地插人新的类属性,甚至新的方法。考虑如下的函数装饰器一一一它们分配函数属性来记录随后某个API的使用信息,但是它们没有插人一个包装器层来拦截随后的调用:

def decorate(func):func.marked = Truereturn func@decorate
def spam(x, y):return x + yspam.marked

输出:

True

输入:

def annotate(text):def decorate(func):func.label = textreturn funcreturn decorate@annotate('spam data')
def spam(x, y):return x + yspam(1, 1), spam.label

输出:

(2, 'spam data')

这样的装饰器直接扩展了函数和类,但没有捕捉对它们的随后调用。我们将在后面的文章见到多的管理类的类装饰的例子,因为这证明了它已经转向了元类的领域。

参考文献:
[1] Mark Lutz. Python学习手册[M]. 机械工业出版社, 2018.

http://www.yayakq.cn/news/532255/

相关文章:

  • 手机网站整站模板下载工具贵阳网站建设哪家公司好
  • 做设计不能不知道的网站网站美工设计收费
  • 找人做ps的网站搜索引擎的四个组成部分及作用
  • 免费建站平台哪个稳定江门seo网站
  • 网站开发环境有什么网络安全薪水一般多少
  • 学校网站的目的响应式企业网站制作公司
  • 中国建设银行货币基金网站农博园网站建设投标书
  • 搜索案例的网站沈阳seo排名优化推广
  • 设计说明ai陕西seo经理
  • 宁夏网站建设常平镇网站建设公司
  • 厦门唯一官方网站wordpress 扫码支付宝
  • 深圳网络营销网站聊石家庄seo
  • 网站搭建图片有可以花钱让人做问券的网站吗
  • 自己做片头的网站如何去掉wordpress
  • 重庆市建设企业诚信分查询网站新昌网站制作
  • 湖南网站托管哪家好全国公共资源交易中心官网
  • 广东快速做网站公司哪家好校园文化设计公司公司排名
  • 销售网站模板免费下载网站建设费用先付一半
  • 北京招聘网站设计师wordpress编辑和作者的权限区别
  • 郑州二七区网站建设张家港外贸网站建设
  • 城市建设者官方网站深圳商业网站建设推荐公司
  • 从零开始学做网站cdsn公司查询信息查询
  • 深圳住房和建设局网站在哪个网个人住房公积金贷款
  • 做网站的哪家比较好微信服务号绑定网站吗
  • 微网站开发平台有哪些wordpress 文章来源
  • 南昌网站建设风格优化方案答案
  • 厦门网站建设及维护做网站素材
  • 牛商网建设的食品网站建立网站要多少钱一年
  • 企业微网站建设方案合肥市做外贸网站的公司
  • 软文怎么优化网站上海制作公司