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

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

 #定义方法
def funx1():
pass def funx2():
return 0 def funx3():
return 11,12,[33,88],{"xx":99} def funx411():
return ("------funx411111111------") def funx4():
return funx411 #调用方法1
#返回:None
print(funx1()) #调用方法2
#返回:0
print(funx2()) #调用方法3
#返回元组:(11, 12, [33, 88], {'xx': 99})
print(funx3()) #调用方法4
#返回函数地址,加括号就可运行
funx40=funx4();
#输出:------funx411111111------
print(funx40())

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

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

递归函数:

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

高阶函数:

函数作为参数进行传递

def addx(x,y,funx):
return funx(x)+funx(y) res=addx(-5,1,abs) #abs的绝对值运算函数
print(res) #输出:6

函数装饰器:

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

注意:

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

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

 import time

 #装饰器
def decofun(func): #decofun(funx1)
def deco(*args,**kwargs):#可支持多个位置参数和关键字参数传递
starttime=time.time()#获的开始取时间戳
func(*args,**kwargs) #运行函数
stoptime=time.time()
print("函数运算时间为:%f"%(stoptime-starttime))
return deco #返回函数地址 @decofun #相当于:funx1=decofun(funx1)
def funx1():
time.sleep(1)
print("----funx1----") @decofun #相当于:funx2=decofun(funx2)
def funx2(x,y):
print(x,"---funx2---",y) #funx1=decofun(funx1)
funx1() #调用函数
funx2(y=12,x=16)#调用函数

最新文章

  1. [软件推荐]Windows文件夹多标签工具Clover
  2. BLOG搬家
  3. c#列举和迭代器
  4. Windows客户端C/C++编程规范“建议”——风格
  5. SQL Server 脚本
  6. java_method_readFile读取文件文本txt
  7. 第三方账号登录--QQ登录,以及QQ微博账号登录
  8. webpack ,react
  9. SGU 548 Dragons and Princesses
  10. spring 注解方式配置Bean
  11. [转载] Linux内存管理之mmap详解
  12. CentOS7.4下的 JDK1.8 安装
  13. 百度播放器SDK 播放MP4格式视频有声音无画面问题解决
  14. 推荐大家在GitHub 上值得关注学习的 iOS 开源项目
  15. thymeleaf:访问list,map等
  16. LeetCode(87):扰乱字符串
  17. Maven2查看源码
  18. 使用Python3.7.0搭建简易服务器
  19. 2014年誓言:干掉网页设计程序——Dreamweaver!
  20. HDUOJ--8球胜负

热门文章

  1. pyqt5与QML开发小结
  2. thinkPHP5扩展workerman
  3. Nginx 静态页面POST 请求提示405 Not Allowed
  4. Web系统中Mic设备的应用实例
  5. Python入门经典. 以解决计算问题为导向的Python编程实践
  6. HTML入门14
  7. HTML入门11
  8. App间相互跳转及图片分享
  9. 微信小程序开发---各代码文件简介
  10. linux学习:用户管理