Python学习函数,指定参数和不指定参数的顺序解读
2017-12-28 13:16
274 查看
1、我们定以一个函数有3个参数分别为one,two,three
2、我们传入不指定参数(1,2,3)和参数(3,2,1)打印出结果我们可以看出参数传递进去是一一对应的关系
3、我们传入指定参数(one = 1,two = 2,three = 3)和 (three = 3,one = 1,two = 2)后打印结果一样,我们可以看出,如果参数都是指定参数这时参数传递与顺序无关
4、我们传入既有指定参数又有不指定参数(3,one = 1,two = 2)、(one = 1,two = 2,3)、(one=1,2,3)和(4,two =2,three=3),我们打印的结果可以看出当传入的参数前面是指定参数时后面的是不指定参数时会报错。
从上面我们可以得出一个结论(不定形参除外):当前面是不指定参数时,后面的参数既可以是指定参数也可以是不指定参数,但是当前面是指定参数时,后面的参数一定要是指定参数。
这句话也同样适用于函数形参的定义,大家可以自己试一试。上面的结论是整句理解的,断章取义不适用的。
def function(one, two, three): print("结果:",one, two, three)
2、我们传入不指定参数(1,2,3)和参数(3,2,1)打印出结果我们可以看出参数传递进去是一一对应的关系
function(1,2,3) function(3,2,1) 结果: 1 2 3 结果: 3 2 1
3、我们传入指定参数(one = 1,two = 2,three = 3)和 (three = 3,one = 1,two = 2)后打印结果一样,我们可以看出,如果参数都是指定参数这时参数传递与顺序无关
function(one = 1,two = 2,three = 3) function(three = 3,one = 1,two = 2) 结果: 1 2 3 结果: 1 2 3
4、我们传入既有指定参数又有不指定参数(3,one = 1,two = 2)、(one = 1,two = 2,3)、(one=1,2,3)和(4,two =2,three=3),我们打印的结果可以看出当传入的参数前面是指定参数时后面的是不指定参数时会报错。
function(3,one = 1,two = 2) function(one = 1,two = 2,3) function(one=1,2,3) function(4,two =2,three=3) function(4,two =2,three=3) #错误1 function( 4000 one = 1,two = 2,3) ^ SyntaxError: positional argument follows keyword argument #错误2 function(one = 1,two = 2,3) ^ SyntaxError: positional argument follows keyword argument #错误3 function(one=1,2,3) ^ SyntaxError: positional argument follows keyword argument #正确 结果: 4 2 3
从上面我们可以得出一个结论(不定形参除外):当前面是不指定参数时,后面的参数既可以是指定参数也可以是不指定参数,但是当前面是指定参数时,后面的参数一定要是指定参数。
这句话也同样适用于函数形参的定义,大家可以自己试一试。上面的结论是整句理解的,断章取义不适用的。
相关文章推荐
- AspectJ的拓展学习--织入顺序和通知参数指定
- 注意:C语言中没有指定同一运算符的多个操作数或者某函数各个参数的求值顺序,如果代码的执行结果和求值顺序有关,都是不好的程序设计风格。
- 关于ORDER BY 指定排列顺序
- HLSL/CG里的Mul参数顺序
- 【经验总结】脚本如何支持可变参数,参数可以不按顺序输入
- 按照指定顺序排序
- 调用约定的参数传递顺序
- mybatis 的接口参数为什么要使用注解 指定参数
- .NET中oledb访问access含子查询的语句的参数置换顺序
- js获取url中指定参数的值(含带hash)
- LINQ 要转换为 SQL,Math.Round 方法需要 MidpointRounding 参数。使用“AwayFromZero”来指定 SQL 函数 ROUND。
- c/c++的函数参数压栈顺序
- printf打印参数的顺序问题
- 笔记本参数解读
- Caffe 中 BN(BatchNorm ) 层的参数均值、方差和滑动系数解读
- javascript 删除 url 中指定参数,并返回 url
- mysql之 binlog维护详细解析(开启、binlog相关参数作用、mysqlbinlog解读、binlog删除)
- Sources”参数中指定了多次。“Sources”参数不支持重复项
- linux dd命令参数及用法详解---用指定大小的块拷贝一个文件
- printf函数与cout参数压栈顺序问题