2只接受关键字参数的函数
函数的某些参数强制使用关键字参数传输,将强制关键字参数放到某个*参数或者单个*后面
def recv(maxsize,*,block):'Receives a message'pass
def minium(*values,clip=None):m=min(values)if clip is not None:m=clip if clip>m else mreturn m
minium(1,5,2,-5,10)
3给函数参数增加元信息
def add(x:int,y:int)->int:return x+y
add('a','b')
函数注解只存储在__annotations__中
4返回多个值的函数
return 一个元组就可以刻,return x,y,z这种返回的是一个元组
5定义有默认参数的函数
def spam(a,b=42):print(a,b)
**注意:use默认参数的时候要使用None,True,False等不会改变的默认参数,要使用if b is None:这种使用if not None会使长度为零的列表,tuple,和元组被误传进来...
7lamdba函数都是在使用的时候赋值,如果想让给某个匿名函数在定义时就捕获到值,可以将那个参数值定义成默认参数
8减少可调用对象的参数个数
由于参数太多导致调用失败
functools.partial(function(arg1,arg2...),arg3)函数
def apply_async(func,args,*,callback):#Compute the resultresult=func(*args)#Invoke the callback with the resultcallback(result)