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

北京网站关键词优化公建站宝盒建站系统

北京网站关键词优化公,建站宝盒建站系统,电子商务网站技术,正规接单赚佣金的app1.情景引入。 现在已经完成了一个python项目#xff0c;但是我们为了安全起见#xff0c;我们需要加入验证机制。不是所有人都能调用函数 原始源代码def f1():print f1def f2():print f2def f3():print f3 由于必须遵循开发闭包的原则#xff0c;所以我们应该尽可能的是不去… 1.情景引入。 现在已经完成了一个python项目但是我们为了安全起见我们需要加入验证机制。不是所有人都能调用函数 原始源代码def f1():print f1def f2():print f2def f3():print f3 由于必须遵循开发闭包的原则所以我们应该尽可能的是不去改动原来函数的内部代码而是通过其他的一些方法添加新的功能 比如通过下面这样的方法 #首先定义一个验证函数参数为一个函数 def verification(func):print(verification success!!!)return func #返回传入函数的首地址def f1():print f1def f2():print f2def f3():print f3f1verification(f1) #执行这一句代码后会直接输出verification success!!!因为我们执行了verification这个函数。然后返回传入函数的地址 #再执行返回的函数,这样就会执行f1()这个函数 f1() #最终结果verification success f1换一种写法实现和上面同样的功能——–装饰器 def verification(func):print(verification success!!!)return func #返回传入函数的首地址verification def f1():print f1 verification跟上一段代码的f1verification(f1)这条语句等价此时的f1已经是verification函数的返回值了即func 上面的代码不经过任何调用直接运行 结果 verification success!!! 加一条代码 f1f1() #相当于f1func(),func是verification返回的函数即原f1()函数结果 verification success f1 由此我们发现了一个问题那就是我们直接使用verification的时候他是直接执行了verification这个函数因此他会先有输出”verification success“这就出现了不统一的问题按照我们原来的设想是”verification success“和”f1“应该同时输出的。因此我们用相同的原理写一个内部函数通过返回内部函数的地址达到不执行函数的效果 代码如下 def verification(func):def inner():print verification successfunc()return inner #返回了一个函数的地址没有直接执行verification def f3():print f3 此时函数f3已经变成了inner了然后我们调用f3,即inner f3() #这里就直接执行了inner函数 输出结果 verification success f1 实现原函数无返回值 def verification(func):def inner(arg):if arg100:func(arg)else:print verification failreturn innerverification def f1(num):print numverification def f2(num):print numf1(101) f2(88) 结果 101 verification fail原函数有返回值 def verification(func):def inner(arg):if arg100:return func(arg)else:return verification failreturn innerverification def f1(num):return data is %d%numverification def f2(num):return data is %d % numprint f1(101) print f2(88)结果 data is 101 verification fail 多参数传递 验证功能的函数 def verification(func):def inner(*args,**kargs):if password in kargs:passwordkargs[password]else:password000if password233:return func(*args)else:return verification failreturn innerverification def f1(num):return data is %d%(num)verification def f2(num):return data is %d % numprint f1(101,password233) #此时的f1其是inner函数 print f2(88)#结果 data is 101 verification fail 2.装饰器 就如同以上代码一样想要对一个已有的模块做一些“修饰工作”所谓修饰工作就是想给现有的模块加上一些小装饰一些小功能这些小功能可能好多模块都会用到但又不让这个小装饰小功能侵入到原有的模块中的代码里去。 3.进阶版—-带参数Decrorator def makeHtml(tag,*args,**kwargs):def realDeco(main_fun):if css_class in kwargs:css_classclass{}.format(kwargs[css_class])else:css_classNonedef wrapper(*args,**kwargs):return tag css_classmain_fun(*args,**kwargs)/tagreturn wrapperreturn realDecomakeHtml(tagb,css_classbold_css) def index():return hello worldprint index() 执行过程 到makeHtml时程序执行过程 1.先执行makeHtml(tag’b’,class’bold_css’)函数,返回realDeco的地址 2.执行realDeco(index),获取到css_class变量的值,返回wrapper 3.执行print index().此时此刻的indexwrapper执行wrapper()函数 4.执行main_fun(即原index函数)重新拼接得到b classbold_csshello world/b最后返回了这个值 执行结果 b classbold_csshello world/b 待续。。。。 转载于:https://www.cnblogs.com/cmustard/p/6769936.html
http://www.pierceye.com/news/555353/

相关文章:

  • js 捕获网站异常插件网站商城怎么做
  • 北辰网站开发淮北哪有做淘宝网站
  • 建设银行e路通网站室内设计师证需要学哪些课程
  • 舟山市建设信息港网站打不开如何建设一个收费的影视图文网站
  • 内蒙建设信息网站网页制作作品阐述
  • 天津网站seo策划服装定制项目计划书
  • 常州网站建设大全买奢侈品代工厂做的产品的网站名
  • 建设网站如入什么费网站建设体会doc
  • 不备案怎么做淘宝客网站吗深圳华强北新闻最新消息今天
  • 梅兰商贸网站开发设计外国网站在中国做推广
  • 有无专门做网站会员人数迅速增加的方法北京单页营销型网站
  • 岳阳网站开发网站运营怎么做建设网站设计
  • 能打开各种网站的浏览器下载合集建设农产品网络营销网站
  • 陕西网站建设方案优化如何做网站挂qq
  • 无锡市网站WordPress分类id在哪
  • 网站建设金网站建设 需求模板
  • 提高网站转化率营销网站制作都选ls15227
  • 一级页面的网站怎么做爱疯卷网站怎么做
  • 网站企业快速备案大气的企业网站
  • 一个好的网站建设微网站手机制作
  • 广州市做民宿什么网站比较好图盛网站建设
  • 深圳做网站佰达科技二十七易语言做网站源码
  • 水禾田网站建设公司南沙区做网站
  • 江西赣州网站上海企业服务云电话
  • 洱源网站建设品牌名字大全
  • 网站建设阶段要做什么帝国cms对比WordPress
  • 盐城做企业网站多少钱网页设计个人总结800
  • 北京做兼职网站温州网站建设模板下载免费
  • 推进门户网站建设方案wordpress插件自动更新
  • 学院网站建设成效做网站需要什么功能