VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Java教程 >
  • Python中函数参数 *args 和 **kwargs

  • 普通参数,即在调用函数时必须按照准确的顺序来进行参数传递。
  • 默认参数,即参数含有默认值,在调用函数时可以进行参数传递,若没有进行参数传递则使用默认值,要注意,默认参数必须在普通参数的右侧(否则解释器无法解析)。
  • 元组参数,即 *args,参数格式化存储在一个元组中,长度没有限制,必须位于普通参数和默认参数之后。
  • 字典参数,即 **kwargs,参数格式化存储在一个字典中,必须位于参数列表的最后面。

	
Copy
ll = [2,5,6] arg = {'name': 'js', 'gender': 'man'} def func(*args, **kwargs): print('args: ') print(args) print('kwargs :') print(kwargs.items()) func(*ll, **arg)

	
Copy
args: (2, 5, 6) kwargs : dict_items([('name', 'js'), ('gender', 'man')])
  • 同时拥有*args和**kwarg形参的函数

	
Copy
def func(*args, **kwargs): print('args: ') print(args) print('kwargs :') print(kwargs.items()) func(2,4,5,name='js',gender='man') # 没有指定位置的参数被*arg接收,指定位置的参数被**kwarg接收

	
Copy
args: (2, 4, 5) kwargs : dict_items([('name', 'js'), ('gender', 'man')])

总结 :和在列表元素匹配,函数使用字典或列表参数(整理参数)和传入字典或列表参数(压缩参数)都有着重要的作用,在装饰器也经常用到,用来接收或者传入任意类型,任意数量的参数,使python语言更动态但是会降低代码可读性,谨慎使用!

作者: wyh草样

出处:https://www.cnblogs.com/wyh0923/p/13912063.html



相关教程