Python * 与 ** 修饰符解析
来源:互联网 发布:最讨厌的动漫人物知乎 编辑:程序博客网 时间:2024/06/04 19:40
1. 当*与**出现在函数定义中时:
* 表示此参数类型为tuple
** 表示此参数类型为dict
且*参数类型必须位于**参数类型之前.
请看一个例子:
def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs print '---------------------------------------'if __name__ == '__main__': foo(1,2,3,4) foo(a=1,b=2,c=3) foo(1,2,3,4, a=1,b=2,c=3) foo('a', 1, None, a=1, b='2', c=3)
其输出结果为:
args = (1, 2, 3, 4) kwargs = {} --------------------------------------- args = () kwargs = {'a': 1, 'c': 3, 'b': 2} --------------------------------------- args = (1, 2, 3, 4) kwargs = {'a': 1, 'c': 3, 'b': 2} --------------------------------------- args = ('a', 1, None) kwargs = {'a': 1, 'c': 3, 'b': '2'} ---------------------------------------
2. 当*与**出现在函数调用中时:
* 表示此参数类型为tuple
** 表示此参数类型为dict
请看使用*修饰调用参数的一个例子:
def test_var_args_call(arg1, arg2, arg3): print "arg1:", arg1 print "arg2:", arg2 print "arg3:", arg3args = ("two", 3)test_var_args_call(1, *args)
输出结果为:
arg1: 1arg2: twoarg3: 3
再看使用**修饰调用参数的例子:
def test_var_args_call(arg1, arg2, arg3): print "arg1:", arg1 print "arg2:", arg2 print "arg3:", arg3kwargs = {"arg3": 3, "arg2": "two"}test_var_args_call(1, **kwargs)
输出结果为:
arg1: 1arg2: twoarg3: 3
.
- Python * 与 ** 修饰符解析
- final修饰符解析
- python的修饰符
- python的修饰符
- python的修饰符@
- python之修饰符
- python中的 @ 修饰符
- python 修饰符函数
- python修饰符
- python修饰符
- python中的@修饰符
- python的修饰符
- python @修饰符
- Python decorator "@"(修饰符)
- python修饰符
- python中的 @ 修饰符
- Java权限修饰符解析
- default修饰符深入解析
- Reader开发(二)增加PDF阅读功能
- json infinite recursion stackoverflowerror
- 有关URL传值乱码问题
- CUSparse 第二章 使用CUSPARSE API
- 1.从eclipse中带格式复制代码
- Python * 与 ** 修饰符解析
- 用printf打印MAC地址的时候为什么要后面的&0xFF?
- Java基础——static关键字
- VBS基础知识
- Hibernate创始人Gavin King:冬眠的数据
- 回调函数的概念及其使用
- 计算机基础核心概念的实现简介
- C++ GetTickCount()和Sleep()
- VC Edit控件自动换行显示方法