函数

定义函数

def func_name():
pass

返回值的三种情况

没有返回值–返回None

不写return
只写return:结束一个函数的继续
return None —不常用

返回一个值

可以返回任何数据类型
只要返回就可以接受到
如果程序中有多个return,那么只执行第一个

返回多个值

多少个返回值用多少个变量接收
用一个变量接收,得到的是一个元组

实参角度上

按照位置传递参数
按照关键字传递参数
混着用的时候必须先按照位置参数,再按照关键字传递参数
不能给一关键字传递多个值

形参角度上

位置参数:必须传,有多少个参数就要传递多少个值
默认参数:可以不传,如果不传就是用默认的参数,如果传就用传的参数

定义函数的时候

位置参数:直接定义
默认参数:关键字参数:参数名 = ‘默认的值’
动态参数:可以接受任意多个参数,参数名之前加 ‘*’ 习惯使用 ‘*args’
顺序:必须先定义位置参数,后定义默认参数

动态参数:可以接受任意个参数

‘*args’ :接受的是按照位置传参的值,组织成一个元组
‘**kwargs’ :接受的是按照关键字传参的值,组织成一个字典
args必须在kwargs之前
顺序:位置参数 ,*args, 默认参数,**kwargs

def func(*args, *kwargs): #形参角度上,给变量加上,就是组合所有的传来的值
pass
func(1,2,3,4,5) # (1,2,3,4,5)
l = [1,2,3,4,5] # (1,2,3,4,5)
func(l) #实参角度上,给一个序列加上一个,就是将这个序列按照顺序拆开

'*'可以拆开序列
'**'可以拆开字典

函数的注释

def func():
‘’’
这个函数实现了什么功能
参数i:
return: xxxxxxx
‘’’
pass

函数的嵌套

内部函数可以使用外部函数的变量

nonlocal a 声明函数上层的最近的一个局部变量,如果找不到就继续往上找,但只能用于局部变量(离他最近的)

函数名就是内存地址
函数名可以赋值
函数名可以作为容器类型的元素
函数名可以作为函数的参数

函数的闭包

闭包:嵌套函数,内部函数调用外部函数的变量

def outer():
a = 1
def inner():
print(a)
print(inner.closure)
outer()
有返回cell则为闭包

def outer():
a = 1
def inner():
print(a)
return inner
inn = outer()
inn()
在一个函数的外部去使用他内部的函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值