打印 args 与 *args 的区别
1 #打印时区别 2 def outer(*args, **kwargs): 3 print(args) #输出结果:(1, 2, 3, 4) 4 print(*args) #输出结果:1 2 3 4 5 6 outer(1,2,3,4)
1 #函数调用时区别 2 def outer(*args, **kwargs): 3 print(args) 4 print(*args) #也是调用函数,调用的是print函数 5 6 outer([1,2,3,4]) #输出结果:([1, 2, 3, 4],) 7 # [1, 2, 3, 4] 8 9 outer(*[1,2,3,4]) #输出结果:(1, 2, 3, 4) 10 # 1 2 3 4 11 #等价于outer(1,2,3,4),以及outer(*(1,2,3,4))
规律
1 def outer(*args, **kwargs): 2 print(args) 3 print(*args) #也是调用函数,调用的是print函数 4 def inner(*args): 5 print(‘inner:‘,args) 6 inner(*args) 7 8 outer(1,2,3,4) #输出结果:(1, 2, 3, 4) 9 # # 1 2 3 4 10 # # inner: (1, 2, 3, 4) 在被传参时聚合
总体
def wrapper(func): def inner(*args,**kwargs): print(‘在被装饰的函数执行之前做的事‘) ret = func(*args,**kwargs) print(‘在被装饰的函数执行之后做的事‘) return ret return inner @wrapper def func(day): print(‘python目前是排名第{}的语言‘.format(day)) return ‘所以我们一定要坚持学习python‘ ret = func(4) print(ret)
原文地址:https://www.cnblogs.com/rcat/p/9333509.html
时间: 2024-11-01 16:01:36