关于Python可变参数的理解
来源:互联网 发布:怎样联系网络推手 编辑:程序博客网 时间:2024/05/22 01:49
Python中函数参数的传递,可以分为以下几种形式:
假设有一个函数,定义如下:
def fn(a,b,c): print(a) print(b) print(c)
1. 按参数所在的位置传递
调用方式:
fn(1,2,3)这种传递方式,参数的值,完全由参数所在的位置决定,本例中,参数a对应参数值1,参数b对应参数值2,参数c对应参数值3
2. 按关键字传递
所谓的按关键字传递,通俗一点讲,就是在调用函数的时候,把参数名称和参数值作为一个整体,一起传递给它。参数名称必须要与对应的函数参数名称保持一致。
调用方式:
fn(b=3,a=2,c=1)由于在调用函数的时候,我们指定了参数的名称,此时,参数值跟该参数所在的位置就没用关系了,只跟参数名称对应的值有关。本例中,参数a对应参数值2,参数b对应参数值3,参数c对应参数值1
3. 位置形式的可变参数
函数的定义需要修改一下,改成如下形式:
def fn(a,b,*c): print(a) print(b) print(c)看到没有,函数的第三个参数c前面多了一个*号,这个*号表示,我可以接收若干个参数,且参数的形式必须按位置传递。
调用方式:
fn(1,2,3,4,5,6,7)此时,参数a对应参数值1,参数b对应参数值2,剩下的参数值3,4,5,6,7全部由参数c接收,接收后,变成一个元组,即(3,4,5,6,7)
4. 关键字形式的可变参数
相对于位置形式的可变参数,函数的定义形式上稍有不同,如下:
def fn(a,b,**c): print(a) print(b) print(c)仔细比较下,函数的第三个参数c由之前的*c变成了**c,即参数前带了两个*,同样,两个*号也表示可以接收若干个参数,但与一个*号不同的是,两个*号要求的参数传递形式必须是按关键字传递。
调用方式:
fn(1,2,c=3,d=4,e=5)此时,参数a对应参数值1,参数b对应参数值2,剩下的参数值3,4,5全部由参数c接收,接收后,变成一个字典类型,如:
{'c':3,'d':4,'e':5}
0 0
- 关于Python可变参数的理解
- 关于c++可变参数的理解
- 关于python函数的可变参数和关键词参数
- python的可变参数
- 关于printf()中可变参数的实现的理解
- Python可变长度的参数
- Python函数的可变参数
- python的可变长参数
- Python的可变长参数
- 关于JAVA5的可变参数
- 关于可变参数的用法
- 关于可变参数的函数
- 关于c的可变参数
- 关于函数的可变参数
- 关于可变参数的函数
- 避免可变参数的修改(关键词:Python/可变参数)
- 帮助理解可变参数的应用【转贴】
- C语言可变参数设计的理解
- Bezier Curves for your Games
- 设计模式的理解
- JS去除数组重复项方法2
- 官方API指南之处理运行时变更
- 短信猫开发(1):常用指令
- 关于Python可变参数的理解
- java -version的输出内容分析
- PyGobject(一百零七)CSS系列——动画背景
- HDU 1562 Guess the number
- chromium修改Tab 页
- RICOH THETA×IoT Developers Contest
- iOS runloop理解
- Cornerstone无法上传 .so 文件的问题
- POJ-1300 Door Man