Python档案袋函数与函数装饰器 )

特点:代码复用、可扩展、保持一致性

函数简单的实现,返回值的不同:

 1 #定义方法
 2 def funx1():
 3     pass
 4 
 5  funx2():
 6     return 0
 7 
 8  funx3():
 9     return 11,12,[33,88],{"xx":99}
10 
11  funx411():
12     return (------funx411111111------")
13 
14 
15  funx4():
16      funx411
17 
18 调用方法1
19 返回:None
20 print(funx1())
21 
22 调用方法2
23 返回:0
24 (funx2())
25 
26 调用方法3
27 返回元组:(11,{'xx': 99})
28 (funx3())
29 
30 调用方法4
31 返回函数地址,加括号就可运行
32 funx40=funx4();
33 输出:------funx411111111------
34 print(funx40())

函数简单的实现,形参的不同:

 funx1(x,y):
 2     print(x=%s,y=%s"%(x,y))
 3 
 4 默认参数
def funx2(x2,y2=10):
" % (x2,y2))
 *args可接收多个不固定位置参数,转换为元组
 9 def funx3(x1,y1,*args):
10     print(x1) 输出11
11     print(y1) 输出13
print(len(args)) 输出个数,2
13     print(args) 输出全部值,以元组方式,(19,18)
 *kwargs可接收多个不固定关键字参数,转换为字典
16 def funx4(**kwargs):
17     (kwargs)
18 
与形参一一对应
20 funx1(11,2221 与形参位置无关
22 funx1(y=88,x=99默认值可以不传递值
24 funx2(11025 funx3(11,13,19,1826 funx4(user=dong",name=dongxiaodong递归函数:

递归函数
 funx1(intx):
    
    intx-=1
    (intx)
    
    if intx >0:
        funx1(intx) 再次调用自己

funx1(10)

高阶函数:

函数作为参数进行传递

 addx(x,y,funx):
    return funx(x)+funx(y)

res=addx(-5,1,abs) abs的绝对值运算函数
print(res) 输出:6

函数装饰器:

本质是函数,用来装饰其他函数(给其他函数添加功能)

注意:

1、不可修改被装饰函数源代码

2、不可更改被装饰函数的调用方式

import time
 2 
 3 装饰器
def decofun(func): decofun(funx1)
 5   def deco(*args,**kwargs):可支持多个位置参数和关键字参数传递
 6      starttime=time.time()获的开始取时间戳
 7      func(*args,**kwargs) 运行函数
 8      stoptime=time.time()
 9      函数运算时间为:%f"%(stoptime-starttime))
10   return deco 返回函数地址
11 
12 @decofun  相当于:funx1=decofun(funx1)
13 14     time.sleep(115     ----funx1----16 
17 @decofun  相当于:funx2=decofun(funx2)
 funx2(x,1)">19     print(x,---funx2---,y)
20 
funx1=decofun(funx1)
22 funx1() 调用函数
23 funx2(y=12,x=16)调用函数

相关文章

使用OpenCV实现视频去抖 整体步骤: 设置输入输出视频 寻找帧...
前言 对中文标题使用余弦相似度算法和编辑距离相似度分析进行...
前言 之前尝试写过一个爬虫,那时对网页请求还不够熟练,用的...
前言 本文使用Python实现了PCA算法,并使用ORL人脸数据集进行...
前言 使用opencv对图像进行操作,要求:(1)定位银行票据的...
天气预报API 功能 从中国天气网抓取数据返回1-7天的天气数据...