返回信息流这两天自学A Byte of Python这本书
现在看到8.6默认参数值,8.7关键参数
我不是很懂这两个参数有什么分别,我看书里讲的,都是在定义的函数里把形参赋值啊,
为什么默认参数值要有顺序,必须把赋值的参数放在最后,而关键参数就没有顺序要求。
谢谢各位看我打这么多字了~谢谢各位~~~
附件(684.6KB)
这是一条镜像帖。来源:北邮人论坛 / python / #6212同步于 2015/4/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
[问题]小白自学中的小问题(定义函数时的参数问题)
iwaning
2015/4/11镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
假设你有一个函数 func(a, b, c = 3)
如果调用的时候是这种形式:
func(1, 2, 3)
或者
func(1, 2)
那么是不是就必须要求参数有序?
同理,如果调用的时候是这种形式:
func(a = 1, c = 3, b = 2)
或者
func(a = 1, b = 2)
那么参数的顺序就无关紧要了。
也就是说,定义函数时,必须是最后一个赋值,引用时,如果加形参就可以变换顺序了?
为何定义函数时,必须最后一个赋值有什么意义吗,先赋值是不是会造成什么逻辑混乱?
【 在 Chon 的大作中提到: 】
: 假设你有一个函数 func(a, b, c = 3)
: 如果调用的时候是这种形式:
: func(1, 2, 3)
: ...................
这个不是赋值吧,就是参数的默认值,给参数定义默认值就是为了在调用的时候可以省略该参数,
因而,有默认值的参数必须排在最后,否则:
如果这样做:
def func(a, b = 2, c)
在这里,因为c没有默认值,调用函数的时候参数必须包含c,为了不产生歧义,也必须包含c前面的所有参数,这样就无法省略b了(尽管b有默认值)。
【 在 iwaning 的大作中提到: 】
: 也就是说,定义函数时,必须是最后一个赋值,引用时,如果加形参就可以变换顺序了?
: 为何定义函数时,必须最后一个赋值有什么意义吗,先赋值是不是会造成什么逻辑混乱?
:
知道了,谢谢啦~
【 在 Chon (【意涵团】【奸商】葱先森) 的大作中提到: 】
: 这个不是赋值吧,就是参数的默认值,给参数定义默认值就是为了在调用的时候可以省略该参数,
: 因而,有默认值的参数必须排在最后,否则:
: 如果这样做:
: ...................
通过『我邮2.0』发布