#动态参数一(*输出的参数类型为元组):
def f1(*a):
print(a,type(a))
f1([123])
#动态参数二(**输出的参数类型为字典):
def f2(**a):
print(a,type(a))
f2(k1=8,k2=24)
#动态参数三:
def f3(p,*a,**aa):
print(p,type(p))
print(a,type(a))
print(aa,type(aa))
f3([1,3,6],8,9,24,k1=8,k2=24)
def f4(*args):
print(args,type(args))
tu=(11,22,33)
#把tu当成元组的一个元素输出
f4(tu)
#把tu中的每个元素当成元组的元素输出
f4(*tu)
当我们不知道向函数传递多少参数时,比如我们向传递一个列表或元组,我们就使用*args。
#把dic中的每个键值对当成字典的键值对输出
def f5(**kwargs):
print(kwargs,type(kwargs))
dic={"k1":123,"k2":456}
f5(**dic)
在我们不知道该传递多少关键字参数时,使用**kwargs来收集关键字参数。
#全局变量一般用大写字母
P='kobe'
#全局变量和局部变量
def f6():
a=24
#global P
P='Byrant'
print(P,a)
f6()
def f7():
b=8
print(P,b)
f7()
#函数即数据:作为变量
def add(x,y):
return x+y
ladd=lambda x,y:x+y
other_add=add
other_ladd=ladd
print(other_add(8,24))
print(other_ladd(8,24))
#函数当做参数
nums=[1,2,3,4,8,24]
def calculate(func,lst,initial):
total=initial
for i in lst:
total=func(total,i)
return total
print(calculate(add,nums,0))
#函数作为返回值
def make_ca(operation):
def summary(a,b):
return a+b
def mul(a,b):
return a*b
if operation=='sum':
return summary
elif operation=='mul':
return mul
sum_func=make_ca('sum')(1,4)
sum_mul=make_ca('mul')(1,4)
print(sum_func,sum_mul)