函数代码块以 def 关键词开头
函数内容以冒号起始,并且缩进。
return [表达式] 结束函数,不带return相当于返回 None。
def tfun(a, b='default value', *param):
x = ','.join(param)
return f'a={a} b={b} param={x}'
print(tfun('a'))
#a=a b=default value param=
print(tfun('a', 'b'))
#a=a b=b param=
print(tfun(b='a', a='b'))
#a=b b=a param=
print(tfun('a', 'b', 'c', 'd'))
#a=a b=b param=c,d
def age(**kwargs):
dic = {}
for key, value in kwargs.items():
dic[key] = value
return dic
a = age(zs=18, ls=20, ww=22)
print(a)
##{'zs': 18, 'ls': 20, 'ww': 22}
#传值
def get_name_age(zs=18, ls=19, ww=20, ml=21):
print(f'zs:{zs},ls:{ls},ww:{ww},ml:{ml}')
ages = {'zs':12,'ls':13,'ww':15,'ml':16}
get_name_age(**ages)
#zs:12,ls:13,ww:15,ml:16
get_name_age(zs=30, ls=31)
#zs:30,ls:31,ww:20,ml:21
def ext(p1,p2,df=0,*vart,**kw):
print(f'p1=f{p1},p2={p2},df={df},vart={vart},kw={kw}')
ext(1,2)
#p1=f1,p2=2,df=0,vart=(),kw={}
ext(1,2,3)
#p1=f1,p2=2,df=3,vart=(),kw={}
ext(1,2,3,4)
p1=f1,p2=2,df=3,vart=(4,),kw={}
ext(1,2,3,4,5,c=1)
p1=f1,p2=2,df=3,vart=(4, 5),kw={'c': 1}
#闭包
def fun_sum(*args):
def calc():
x=0
for i in args:
x+=i
return x
return calc
x1=fun_sum(1,2,3)
x2=fun_sum(1,2,3)
print(x1==x2)
#False
print(x1()==x2())
#True
#更改递归深度
import sys
sys.setrecursionlimit(10000)

评论