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

网站建设硬件环境wordpress修改主页

网站建设硬件环境,wordpress修改主页,wordpress安装nextapp,在线编辑网页# -*- coding:utf-8 -*-示例1: 最简单的函数,表示调用了两次def myfunc():print (myfunc() called.)myfunc()myfunc()E:\py -3 a.pymyfunc() called.myfunc() called.第二步#xff1a;使用装饰函数在函数执行前和执行后分别附加额外功能示例2: 替换函数(装饰…# -*- coding:utf-8 -*-示例1: 最简单的函数,表示调用了两次def myfunc():print (myfunc() called.)myfunc()myfunc()E:\py -3 a.pymyfunc() called.myfunc() called.第二步使用装饰函数在函数执行前和执行后分别附加额外功能示例2: 替换函数(装饰)装饰函数的参数是被装饰的函数对象返回原函数对象装饰的实质语句: myfunc deco(myfunc)defdeco(func):print (before myfunc() called.)func()print (after myfunc() called.)returnfuncdefmyfunc():print (myfunc() called.)myfuncdeco(myfunc)myfunc()myfunc()E:\py -3 a.pybefore myfunc() called.myfunc() called.after myfunc() called.myfunc() called.myfunc() called.第三步示例3: 使用语法来装饰函数相当于“myfunc deco(myfunc)”但发现新函数只在第一次被调用且原函数多调用了一次defdeco(func):print (before myfunc() called.)func()print (after myfunc() called.)returnfuncdeco #等价于deco(myfunc)defmyfunc():print (myfunc() called.)myfunc()myfunc()E:\py -3 a.pybefore myfunc() called.myfunc() called.after myfunc() called.myfunc() called.myfunc() called.-------执行逻辑deco(myfunc)print (before myfunc() called.)myfunc()print (  after myfunc() called.)print ( myfunc() called.)print ( myfunc() called.)第四步使用内嵌包装函数来确保每次新函数都被调用装饰器的规则规则1函数func上面定义了xxxx,那么等价于 func  xxxx(func)规则2装饰函数xxxx,必须返回一个闭包(一个内置函数func)示例4: 使用内嵌包装函数来确保每次新函数都被调用内嵌包装函数的形参和返回值与原函数相同装饰函数返回内嵌包装函数对象defdeco(func):def_deco():print (before myfunc() called.)func()print (after myfunc() called.)#不需要返回func实际上应返回原函数的返回值return_decodecodefmyfunc():print (myfunc() called.)return okmyfunc() #----执行闭包函数_deco()myfunc()#----执行闭包函数_deco()#myfuncdeco(myfunc)-----返回一个闭包_deco的函数myfuncE:\py -3 a.pybefore myfunc() called.myfunc() called.after myfunc() called.before myfunc() called.myfunc() called.after myfunc() called.分析defdeco(func):def_deco():print (before myfunc() called.)func()print (after myfunc() called.)#不需要返回func实际上应返回原函数的返回值return_deco闭包_decofuncdecodefmyfunc():print (myfunc() called.)return okmyfuncdeco(myfunc)myfunc是什么是闭包_decomyfuncmyfunc()---_deco()myfunc()---_deco()defouter(name):definner():print(name)returninner闭包innername执行过程解释装饰函数deco被装饰函数myfuncdecodef myfunc():   ---myfunc deco(myfunc)myfunc deco(myfunc)干了什么呢1 调用了deco(myfunc)2  返回闭包_deco外包变量myfunc3 闭包赋值给了myfunc4 提醒myfunc变为了闭包函数对象myfunc()---》干了什么呢1 _deco()执行了2 print (before myfunc() called.)3 myfunc()4 print (  after myfunc() called.)myfunc()---》干了什么呢1 _deco()执行了2 print (before myfunc() called.)3 myfunc()4 print (  after myfunc() called.)第五步对带参数的函数进行装饰示例5: 对带参数的函数进行装饰内嵌包装函数的形参和返回值与原函数相同装饰函数返回内嵌包装函数对象defdeco(func):def_deco(a, b):print (before myfunc() called.)retfunc(a, b)print (after myfunc() called. result: %s %ret)returnretreturn_decodecodefmyfunc(a, b):print (myfunc(%s,%s) called. %(a, b))return a bmyfunc(1, 2)myfunc(3, 4)E:\py -3 a.pybefore myfunc() called.myfunc(1,2) called.after myfunc() called. result: 3before myfunc() called.myfunc(3,4) called.after myfunc() called. result: 7第六步对参数数量不确定的函数进行装饰示例6: 对参数数量不确定的函数进行装饰参数用(*args, **kwargs)自动适应变参和命名参数defdeco(func):def _deco(*args, **kwargs):print (before %s called. % func.__name__)ret func(*args, **kwargs)print (after %s called. result: %s % (func.__name__, ret))returnretreturn_decodecodefmyfunc(a, b):print (myfunc(%s,%s) called. %(a, b))return abdecodefmyfunc2(a, b, c):print (myfunc2(%s,%s,%s) called. %(a, b, c))return abcmyfunc(1, 2)myfunc(3, 4)myfunc2(1, 2, 3)myfunc2(3, 4, 5)E:\py -3 a.pybefore myfunc called.myfunc(1,2) called.after myfunc called. result: 3before myfunc called.myfunc(3,4) called.after myfunc called. result: 7before myfunc2 called.myfunc2(1,2,3) called.after myfunc2 called. result: 6before myfunc2 called.myfunc2(3,4,5) called.after myfunc2 called. result: 12第七步被装饰函数加参数带参数的装饰器本质都是两层闭包示例7: 在示例4的基础上让装饰器带参数和上一示例相比在外层多了一层包装。装饰函数名实际上应更有意义些defdeco(arg):def_deco(func):def __deco():print (before %s called [%s]. % (func.__name__, arg))func()print (after %s called [%s]. % (func.__name__, arg))return __decoreturn_decodeco(mymodule)defmyfunc():print (myfunc() called.)deco(module2)defmyfunc2():print (myfunc2() called.)myfunc()myfunc2()1)多了一步deco(hello) ---》返回了闭包__decosdeco闭包__decos2)deco---__deco(func)s---返回了一个闭包_decofuncs后面的过程跟上一步的过程一样。E:\py -3 a.pybefore myfunc called [mymodule].myfunc() called.after myfunc called [mymodule].before myfunc2 called [module2].myfunc2() called.after myfunc2 called [module2].第八步让装饰器带 类 参数示例8: 装饰器带类参数classlocker:def __init__(self):print (locker.__init__() should be notcalled.)staticmethoddefacquire():print (locker.acquire() called.(这是静态方法))staticmethoddefrelease():print (locker.release() called.(不需要对象实例))defdeco(cls):cls 必须实现acquire和release静态方法def_deco(func):def __deco():print(before %s called [%s]. %(func.__name__, cls))cls.acquire()try:returnfunc()finally:cls.release()return __decoreturn_decodeco(locker)defmyfunc():print (myfunc() called.)myfunc()myfunc()E:\py -3 a.pybefore myfunc called [].locker.acquire() called.(这是静态方法)myfunc() called.locker.release() called.(不需要对象实例)before myfunc called [].locker.acquire() called.(这是静态方法)myfunc() called.locker.release() called.(不需要对象实例)第九步装饰器带类参数并分拆公共类到其他py文件中同时演示了对一个函数应用多个装饰器mylocker.py: 公共类 for 示例9.pyclassmylocker:def __init__(self):print(mylocker.__init__() called.)staticmethoddefacquire():print(mylocker.acquire() called.)staticmethoddefunlock():print(mylocker.unlock() called.)classlockerex(mylocker):staticmethoddefacquire():print(lockerex.acquire() called.)staticmethoddefunlock():print(lockerex.unlock() called.)deflockhelper(cls):cls 必须实现acquire和release静态方法def_deco(func):def __deco(*args, **kwargs):print(before %s called. %func.__name__)cls.acquire()try:return func(*args, **kwargs)finally:cls.unlock()return __decoreturn _deco示例9: 装饰器带类参数并分拆公共类到其他py文件中同时演示了对一个函数应用多个装饰器from mylocker import *classexample:lockhelper(mylocker)defmyfunc(self):print (myfunc() called.)lockhelper(mylocker)lockhelper(lockerex)defmyfunc2(self, a, b):print (myfunc2() called.)return a bif __name____main__:aexample()a.myfunc()print(a.myfunc())print (a.myfunc2(1, 2))print (a.myfunc2(3, 4))
http://wiki.neutronadmin.com/news/150407/

相关文章:

  • 不备案怎么做淘宝客网站wordpress 微博链接
  • 重庆住房城乡建设部网站wordpress空俩格
  • 洛阳做网站哪家专业欧美网站设计特点
  • 南山网站开发珠海网站建设方案报价
  • 建站用哪个模板好wordpress安全权限
  • 做京东网站的摘要智联招聘网站怎么做微招聘信息
  • 做搜索引擎网站人才网招聘找工作
  • 做网站模版与定制的区别浦东医院网站建设
  • 电子商务网站建设的步骤一般福州门户网站建设
  • 装修网站平台推荐佛山新网站制作代理商
  • 查外链网站怎么自己学做电商
  • centos7 wordpress网站购物网站开发项目意义
  • 做puzzle的网站免费数据查询网站
  • 惠州公司网站建设vue网站开发
  • 丽水微信网站建设公司python3 做网站
  • 恋爱网站建设浙江网站建设价格
  • 罗永浩做的网站公众号开发哪家专业
  • 管理网站开发教程js下载服务器wordpress
  • 网站开发需求问卷学校网站建设及使用档案
  • 高端网站建设要多少钱有哪些网站做的很有特色
  • 自己建网站做电商还赚钱吗成都代做网站
  • 什么网站做电脑系统好门户网站建设 工具
  • 专业网站设计公司排名保定市网站建设
  • 网站建设协议 模板下载网站关键词先后
  • 深圳网站建设 设计首选遂宁网站建设公司哪家好
  • 官方网站minecraft制作书签教案
  • 佛山企业网站建设公司推荐丹东做网站
  • 做二手电脑的网站链接缩短在线生成器
  • H5网站模板修改教程做网站和做软件哪个赚钱
  • 做网站编辑要会什么道路建设网站