1
默认参数值被python认为是关键字参数吗?我无法理解的区别默认参数值和关键字参数的区别?
我不明白这个线程Python normal arguments vs. keyword arguments
在一个侧面说明,大多数教程和视频系列似乎朝着巨蟒2.要面向*。我应该学习Python 3而不是Python 2,还是可以稍后轻松完成转换。我只是因为好奇才学习。
在此先感谢。
默认参数值被python认为是关键字参数吗?我无法理解的区别默认参数值和关键字参数的区别?
我不明白这个线程Python normal arguments vs. keyword arguments
在一个侧面说明,大多数教程和视频系列似乎朝着巨蟒2.要面向*。我应该学习Python 3而不是Python 2,还是可以稍后轻松完成转换。我只是因为好奇才学习。
在此先感谢。
这两个概念都是(大部分)不同。
在函数定义方面,您已命名具有名称的参数,并且您有可变参数扩展,一个用于位置参数(给出元组),另一个用于键盘参数(给出字典)。
实施例:
def f(a, b=5, *c, **d): return a, b, c, d
这个函数有两个命名参数可用于定位或通过关键字(a
和b
)。 c
和d
采取所有其他给出的。
您可以使用位置参数以及关键字参数来调用此函数。
f(1)
f(a=1)
都返回
1, 5,(), {}
,因为位置和关键字参数被分配到指定的参数。
可以如做
f(a=5, foo=12) or f(5, foo=12) # -> 5, 5,(), {'foo': 12}
f(1, 2, 3) # -> 1, 2, (3,), {}
在最后一个示例中,位置参数1和2中给出的命名参数a
和b
;超过3被放入元组c
。
你不能这样做
f(b=90) # no value for a
f(12, a=90) # two values for a
如果还有unclearities,请让我知道。