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

平安区wap网站建设公司微信卖货小程序怎么做

平安区wap网站建设公司,微信卖货小程序怎么做,资源网源码,小程序平台入口一。可迭代的对象(也就是可以用for循环,generator 是生成器的意思) 怎么判断是否可迭代呢?通俗的方法建立一个for循环 高大上的方法是: In [40]: from collections import Iterable In [42]: isinstance("abc&quo…

一。可迭代的对象(也就是可以用for循环,generator 是生成器的意思)

怎么判断是否可迭代呢?通俗的方法建立一个for循环

高大上的方法是:

In [40]: from collections import Iterable
In [42]: isinstance("abc",Iterable)     ####是不是Iterable创建的实例,如果是就是True,不是则False
Out[42]: TrueIn [44]: isinstance(100,Iterable)
Out[44]: False

 

 #########################闭包###########################

运行结果:

 应用例子:

 

 #################装饰器#########################

下图是装饰器原理图:

 

完整版:

[root@master gaoji]# cat  02-装饰器.py       
#!/usr/local/bin/python3
# -*- coding:utf-8 -*-def w(func):def inner():print('----正在验证权限----')func()return inner@w    ## @w等价于f1 = w(f1)
def f1():print('----f1----')
@w    ## @w等价于f1 = w(f1)
def f2():print('---f2---')#f1 = w(f1)
f1()
#f2 = w(f2)
f2()

运行结果:

[root@master gaoji]# python 02-装饰器.py 
----正在验证权限----
----f1----
----正在验证权限----
---f2---

 ##############两个装饰器###############

[root@master gaoji]# vim 03-装饰器.py     1 #!/usr/local/bin/python32 # -*- coding:utf-8 -*-3 3 4 def makeItaic(func):1 #!/usr/local/bin/python32 # -*- coding:utf-8 -*-3 4 def makeItaic(func):5     def inner():6         print('--1--')7         return "<b>" +func() + "</b>"8     return inner9 def makeBolt(func):10     def inner():11         print('--2--')12         return "<i>" +func() + "</i>"13     return inner14 15 @makeItaic      #test1 = makeItaic(test1)16 @makeBolt       #test1 = makeBolt(test1)   返回值“<i>hello-world-1</i>”17 def test1():18     print('--3--')19     return 'hello-world-1'20 21 22 23 print(test1())

结果:

[root@master gaoji]# python3 03-装饰器.py 
--1--
--2--
--3--
<b><i>hello-world-1</i></b>

流程图:

很重要的一点:装饰器在装饰的函数调用前,就已经装饰好了

装饰是倒着装饰,调用确实从上往下的

 

##############例子代码##############

1.使用装饰器对无参数的函数进行装饰

def func(functionName):print("---func---1---")def func_in():print("---func_in---1---")functionName()print("---func_in---2---")print("---func---2---")return func_in@func
def test():print("----test----")#test = func(test)

test()

2.使用装饰器对有参数的函数进行装饰

def func(functionName):print("---func---1---")def func_in(a, b):#如果a,b 没有定义,那么会导致16行的调用失败print("---func_in---1---")functionName(a, b)#如果没有把a,b当做实参进行传递,那么会导致调用12行的函数失败print("---func_in---2---")print("---func---2---")return func_in@func
def test(a, b):print("----test-a=%d,b=%d---"%(a,b))test(11,22)

3.使用装饰器对有不定长参数的函数进行装饰

def func(functionName):print("---func---1---")def func_in(*args, **kwargs):#采用不定长参数的方式满足所有函数需要参数以及不需要参数的情况print("---func_in---1---")functionName(*args, **kwargs)#这个地方,需要写*以及**,如果不写的话,那么args是元祖,而kwargs是字典print("---func_in---2---")print("---func---2---")return func_in@func
def test(a, b, c):print("----test-a=%d,b=%d,c=%d---"%(a,b,c))@func
def test2(a, b, c, d):print("----test-a=%d,b=%d,c=%d,d=%d---"%(a,b,c,d))test(11,22,33)test2(44,55,66,77)

4.使用装饰器对有返回值的函数进行装饰

def func(functionName):print("---func---1---")def func_in():print("---func_in---1---")ret = functionName() #保存 返回来的hahaprint("---func_in---2---")return ret #把haha返回岛17行处的调用print("---func---2---")return func_in@func
def test():print("----test----")return "haha"ret = test()
print("test return value is %s"%ret)

5.通用装饰器

def func(functionName):def func_in(*args, **kwargs):print("-----记录日志-----")ret = functionName(*args, **kwargs)return retreturn func_in@func
def test():print("----test----")return "haha"@func
def test2():print("----test2---")@func
def test3(a):print("-----test3--a=%d--"%a)ret = test()
print("test return value is %s"%ret)a = test2()
print("test2 return value is %s"%a)test3(11)

6.带有参数的装饰器

def func_arg(arg):def func(functionName):def func_in():print("---记录日志-arg=%s--"%arg)if arg=="heihei":functionName()functionName()else:functionName()return func_inreturn func#1. 先执行func_arg("heihei")函数,这个函数return 的结果是func这个函数的引用
#2. @func
#3. 使用@func对test进行装饰
@func_arg("heihei")
def test():print("--test--")#带有参数的装饰器,能够起到在运行时,有不同的功能
@func_arg("haha")
def test2():print("--test2--")test()
test2()

 

转载于:https://www.cnblogs.com/shanhua-fu/p/7693910.html

http://www.lbrq.cn/news/2407753.html

相关文章:

  • 做什么推广最赚钱seo研究中心论坛
  • 东风多利卡道路清障车做网站国外十大免费服务器和域名
  • 网站建设报价石家庄头条今日头条新闻
  • 国外做机械设计任务的网站网上推广赚钱项目
  • 北京 网站设计互联网运营培训课程
  • 免费搭建个人网站的3种实用方法做网站好的网站建设公司
  • 如何用七牛云做视频网站怎么做市场推广
  • 单位网站建设存在问题情况汇报如何搜索关键词
  • 常平哪里有招计算机网站开发的网站首页制作网站
  • 山东省城乡建设厅网站互联网运营推广公司
  • 做网站怎么招广告网络软文营销案例
  • 网站关键词几个好公司seo是什么意思
  • 5G网站建设要多少个广告网址
  • PC端网站开发以及设计费用搜索引擎推广
  • 阿里做外贸的网站关键词优化seo费用
  • 做网站赌博代理没有盈利违法吗可以投放广告的网站
  • 自己建网站免费今天的新闻
  • 苏州工业园区规划建设委员会网站友情链接模板
  • 最佳建站模板关键字查找
  • sns社交网站 建设网上有免费的网站吗
  • 中国做网站推广哪家好网络营销的常用工具
  • 沈阳公司网站制作seo百科
  • 网站互动推广google seo实战教程
  • 全球新冠最新数据报告seo外链推广员
  • 注入漏洞网站源码百度2020新版下载
  • 在家做网站或ps挣钱接活整合营销传播的概念
  • wordpress雪人主题宁波企业seo推广
  • 网站总体规划设计说明重庆seo代理计费
  • 石家庄最新大事百度seo官方网站
  • 云虚拟主机搭建网站谷歌搜索引擎首页
  • 数字图像处理(四:图像如果当作矩阵,那加减乘除处理了矩阵,那图像咋变):从LED冬奥会、奥运会及春晚等等大屏,到手机小屏,快来挖一挖里面都有什么
  • Docker Desktop 入门教程(Windows macOS)
  • PCB 混合介质叠层:材料特性匹配与性能提升的技术解析
  • 尚庭公寓-----day2 业务功能实现
  • Java中缓存的使用浅讲
  • RPG60.生成可拾取物品