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

如何优化自己的网站百度权重排名

如何优化自己的网站,百度权重排名,十二师建设局网站,米拓建站最新进展声明:本内容非盈利性质,也不支持任何组织或个人将其用作盈利用途。本内容来源于参考书或网站,会尽量附上原文链接,并鼓励大家看原文。侵删。 5.2.2 简单装饰器 装饰器的形式就是一个闭包,下面是一个简单的定义并使用…

声明:本内容非盈利性质,也不支持任何组织或个人将其用作盈利用途。本内容来源于参考书或网站,会尽量附上原文链接,并鼓励大家看原文。侵删。

5.2.2 简单装饰器

装饰器的形式就是一个闭包,下面是一个简单的定义并使用装饰器的例子。如下:

'''
def house():print('我是毛坯房……')
这是一个原函数,下面我们要自定义一个装饰器,并为这个原函数添加装饰器的效果。
'''# 定义一个装饰器
def decorate(func):  # 定义装饰器函数,它的参数是一个函数a = 100print('wrapper开始加载......')def wrapper():func()  # func()代表被装饰的原函数,使用中可根据需要放置其位置print('----刷漆')print('----铺地板', a)print('----做装潢')print('wrapper加载完成......')return wrapper  # 返回值是内部函数# 定义函数并使用装饰器
@decorate  # 装饰器在定义被装饰函数时使用,自定义装饰器的名称就是我们定义装饰器函数(闭包函数)时的函数名
def house():print('我是毛坯房……')# 调用函数,可以看出打印结果中带有装饰器的效果
house()# 打印函数名查看函数的特性
print(house)  # 输出结果为<function decorate.<locals>.wrapper at 0x0000029C7675D310>,打印house,但输出wrapper,是因为装饰器装返回值给了house

由上面的例子可以看出,装饰器有如下特点:

  • 装饰器是一个闭包;
  • 装饰器以函数为参数。

为什么在被装饰器装饰后,调用原函数会有装饰效果?我们仔细考虑一下装饰器的作用过程:

  1. 装饰器的效果被打印了(上面的例子中),说明装饰器被调用了;
  2. 打印函数名显示内存地址时出现了与装饰器内层函数相关的内容(上面例子中),说明函数的地址是指向装饰器内层函数的地址的;
  3. 因此,我们可以推测:当调用原函数时,装饰器内层函数会被返回给了被装饰函数,即被装饰后装饰器的内层函数就代表了被装饰函数。

即然装饰器的内层函数代表了被装饰函数,那么需要我们考虑一种情况:当被装饰函数有参数时,装饰器的内层函数需要不需要保持参数列表的对应(不一定是一致)?答案是肯定的。如下:

'''
被装饰函数有参数,而装饰器的内层函数没有参数时,运行会报错
'''
def decorate(func):  # 定义装饰器函数a = 100print('wrapper开始加载......')def wrapper():  # 原函数有参,此处没有参数func(8)  # func(x)相当于原函数的调用,直接写定一个参数print('----刷漆')print('----铺地板', a)print('----做装潢')print('wrapper加载完成......')return wrapper# 使用装饰器
@decorate
def house(n):print('我是毛坯房{}'.format(n))house(3)  # 定义的原函数有参数,调用时参数是不能为空的# 运行结果会报如下错误:TypeError: decorate.<locals>.wrapper() takes 0 positional arguments but 1 was given,这说明我们一定要给装饰器的内层函数设置参数'''
被装饰函数有参数,装饰器的内层函数也需要参数
'''
def decorate(func):  # 定义装饰器函数a = 100print('wrapper开始加载......')def wrapper(*x):  # 原函数有参,因此此处也要有参,可以是单参数x,也可以是可变参数 *xfunc(x)  # func(x)相当于原函数的调用,也要有参,可以是可变参数 *xprint('----刷漆')print('----铺地板', a)print('----做装潢{}'.format(x))print('wrapper加载完成......')return wrapper# 使用装饰器
@decorate
def house(n):print('我是毛坯房{}'.format(n))house(3)  # 定义的原函数有参数,调用时参数是不能为空的
http://www.sczhlp.com/news/74714/

相关文章:

  • 在线做网站 自动生成手机版网站项目团队介绍怎么写
  • 国内优秀网页设计网站万网域名注册官网查询入口
  • 体育彩票网站开发方案中国建筑集团有限公司官网首页
  • 网站导航条怎么做元邦物流网站建设
  • 网站开发的实训内容东莞企业推广网站
  • 北京海淀国税局网站浙江省台州市做网站多少钱
  • 网站的设计分析网站300m空间
  • 架设一个网站网站后台内容不更新
  • 如何让网站火起来网站建设技术支持有什么
  • 如何做网站 新手 个人 教程阮一峰wordpress
  • 百度创意产品网站怎样查看网站是用什么做的
  • 建设网站需要会什么王烨重生
  • 免费的招标网站有哪些网站建设讲话
  • 欧拉路,欧拉回路
  • 你认为视频网站如何做推广庆阳网红宝军
  • 公司网站设计开发公司永久免费的云电脑
  • 做网站的书定制网络流量监控软件
  • 珠宝网站策划书注册网络科技公司需要什么条件
  • 商业网站的设计与推广系统怎么做属于自己的免费网站
  • 网站配色 蓝色青岛网站开发哪家服务专业
  • 合肥seo网站优化广西排名前十的模板厂
  • wordpress小说网站主题在线做网站有哪些平台
  • 企业网站建设技巧怎么做网站盈利
  • 长沙好博网站建设有限公司wordpress attachment.php
  • SolidAngle MAXtoA Arnold v5.8.1:高质量3ds Max渲染插件安装指南
  • C# Avalonia 13- MoreDrawing - SimpleArc
  • 网站友情链接怎么添加建中英文网站
  • 网站图片设计制作淘宝数据分析
  • 千岛湖网站建设wordpress被js挂马
  • 摄影看图网站哪些软件可以制作视频