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

东莞做网站排名自己怎样推广呢

东莞做网站排名,自己怎样推广呢,sql2008做网站,互联网门户网站有哪些1 python函数装饰器保存信息 python函数装饰器,可以通过实例属性、全局变量、非局部变量和函数属性,来保存被装饰函数的状态信息。 1.1 统计调用并跟踪 描述 通过装饰器统计函数调用次数,并且用打印来跟踪调用记录。 此装饰器用类的__ca…

1 python函数装饰器保存信息

python函数装饰器,可以通过实例属性、全局变量、非局部变量和函数属性,来保存被装饰函数的状态信息。

1.1 统计调用并跟踪

描述

通过装饰器统计函数调用次数,并且用打印来跟踪调用记录。

此装饰器用类的__call__()方法来实现。

(1) 装饰器返回实例对象;

(2) 构造函数初始化调用次数为0,记录传入的被装饰函数;

(3) 重载__call__()方法,每次调用计增一次调用次数,并且调用被装饰器函数和打印调用信息;

(4) 返回的实例对象赋值给原函数名;

(5) 调用原函数,相当于实例名(),而括号运算符自动调用__call__()方法,从而达到统计调用次数的功能。

示例

>>> class CountTrace:def __init__(self,func):self.calls=0self.func=func#实例名()运算,自动调用__call__   def __call__(self,*args):self.calls+=1print('调用{}{}次'.format(self.func.__name__,self.calls))self.func(*args)>>> @CountTrace
def testct(x):print(x)# testct 为 CountTrace 的实例对象
>>> testct
<__main__.CountTrace object at 0x00000173D57DFDF0>  
>>> for i in range(5):testct(i+1)调用testct1次
1
调用testct2次
2
调用testct3次
3
调用testct4次
4
调用testct5次
5
>>> testct.calls
5

1.2 保存被装饰的状态信息

python的实例属性、全局变量、非局部变量和函数属性,可以保存被装饰函数的状态信息。

1.2.1 类实例属性保存被装饰函数

描述

通过类实例属性来保存被装饰函数的状态信息。

(1) 将被装饰函数赋值保存到类实例属性self.func;

(2) 每装饰一个函数就创建一个类实例;

(3) 被装饰的多个不同函数,相当于多个不同的类实例,保存各自的状态信息;

示例

>>> class CountTrace:def __init__(self,func):self.calls=0self.func=func#实例名()运算,自动调用__call__   def __call__(self,*args,**kargs):self.calls+=1print('调用{}{}次'.format(self.func.__name__,self.calls))return self.func(*args,**kargs)
>>> @CountTrace
def testct(x):print(x)>>> @CountTrace
def testsquare(x):print(x**2)
>>> testct(2)
调用testct1次
2
>>> testsquare(3)
调用testsquare1次
9

1.2.2 嵌套函数global保存被装饰函数

描述

通过嵌套函数的global来保存被装饰函数的状态信息,实现被装饰函数统一计数。

(1) 定义全局比变量calls;

(2) 嵌套函数声明全局变量calls,并进行递增;

(3) 返回的wrapper赋值给各自被装饰的函数,并且共用全局变量calls,所以多个不同的被装饰函数,共用一个计数器;

示例

>>> calls=0
>>> def counttrace(func):def wrapper(*args,**kargs):global callscalls+=1print('调用{}{}次'.format(func.__name__,calls))return func(*args,**kargs)return wrapper>>> @counttrace
def testct(x):print(x)>>> @counttrace
def testsquare(x):print(x**2)>>> testct('梯阅线条')
调用testct1次
梯阅线条
# 多个被装饰的函数共用一个计数器
>>> testsquare(3)
调用testsquare2次
9

global

描述

函数主体内部声明变量为global,则可以对函数外部的变量进行修改。

示例

>>> vg='tyxt.work'
>>> def noglobal():vg='梯阅线条'>>> def hvglobal():global vgvg='梯阅线条'>>> vg
'tyxt.work'
>>> noglobal()
>>> vg
'tyxt.work'
>>> hvglobal()
>>> vg
'梯阅线条'

1.2.3 嵌套函数nonlocal保存被装饰函数

描述

通过嵌套函数的nonlocal来保存被装饰函数的状态信息,实现对被装饰函数各自计数。

(1) 外部函数初始化变量calls=0;

(2) 嵌套函数声明nonlocal变量calls,并进行递增;

(3) 返回的wrapper赋值给各自被装饰的函数,并且使用各自的calls,多个不同的被装饰函数,各用一个计数器;

示例

>>> def counttrace(func):calls=0def wrapper(*args,**kargs):nonlocal callscalls+=1print('调用{}{}次'.format(func.__name__,calls))return func(*args,**kargs)return wrapper>>> @counttrace
def testct(x):print(x)>>> @counttrace
def testsquare(x):print(x**2)>>> testct('梯阅线条')
调用testct1次
梯阅线条
# 多个被装饰的函数各用一个计数器
>>> testsquare(3)
调用testsquare1次
9

nonlocal

描述

python通过nonlocal修改嵌套函数的外部函数的变量。

示例

>>> def f1():s='tyxt.work'def f2():s='梯阅线条'print('f2=',s)f2()print('f1=',s)>>> f1()
f2= 梯阅线条
f1= tyxt.work
>>> def f1():s='tyxt.work'def f2():# 通过nonlocal直接修改嵌套作用域的变量nonlocal ss='梯阅线条'print('f2=',s)f2()print('f1=',s)>>> f1()
f2= 梯阅线条
f1= 梯阅线条

1.2.4 函数属性保存被装饰函数

描述

通过嵌套函数属性来保存被装饰函数的状态信息,实现对被装饰函数各自计数。

(1) 嵌套函数内部,通过wrapper.calls+=1,进行递增;

(2) 嵌套函数wrapper后面,对calls进行初始化;

(3) 返回的wrapper赋值给各自被装饰的函数,并且使用各自的calls,所以多个不同的被装饰函数,各用一个计数器;

示例

>>> def counttrace(func):def wrapper(*args,**kargs):wrapper.calls+=1print('调用{}{}次'.format(func.__name__,wrapper.calls))return func(*args,**kargs)# 定义函数 wrapper 后,再进行属性赋值wrapper.calls=0return wrapper>>> @counttrace
def testct(x):print(x)>>> @counttrace
def testsquare(x):print(x**2)>>> testct('梯阅线条')
调用testct1次
梯阅线条
# 多个被装饰的函数各用一个计数器
>>> testsquare(3)
调用testsquare1次
9
http://www.hkea.cn/news/897454/

相关文章:

  • 铜陵公司做网站中国网站排名100
  • 我要建一个网站泰州百度公司代理商
  • php响应式网站模板vi设计公司
  • 随身wifi网站设置广告投放是做什么的
  • 中企动力做网站的优势网络销售平台有哪些软件
  • 网站建设的费用如何查看百度搜索指数
  • 自己做网站需要什么seo的基本步骤
  • 视频直播app开发网站南京最新消息今天
  • 溧阳手机网站哪里做万网域名注册官网查询
  • 网站维护收费推广产品吸引人的句子
  • 怎么用一个主机做多个网站许昌网络推广公司
  • 网站域名所有权郑州网站运营专业乐云seo
  • 桂园精品网站建设费用网站seo查询站长之家
  • 安卓手机怎么做网站站长工具seo综合查询广告
  • 余姚网站建设的公司手机百度账号申请注册
  • 预付网站制作费怎么做凭证如何自制网站
  • 定制网站多少钱北京seo网站管理
  • 南昌做网站公司哪家好如何建立独立网站
  • 成都解放号网站建设什么是百度竞价
  • 网站优化的基本思想与原则百度号码
  • 沧州网站建设制作设计优化深圳seo优化推广
  • 建立一个网站需要什么技术网上培训机构
  • 网站设计与管理论文百度账号注册平台
  • 网站空间商推荐seo是什么职位缩写
  • 怎么建设boss网站文件外链
  • 百度推广网站建设费百度搜索引擎的网址是多少
  • php 手机网站 上传图片定制网站建设
  • 关于网站建设的问题百度关键词分析
  • 登录官方网站装修公司网络推广方案
  • 设计网站官网入口网站搜索优化方法