我发现了许多关于python函数参数的查询,但仍然感到困惑。假设我想在某些函数中传递几个参数。如何在python中传递默认和可变长度参数?
def anyFunc(name, age, sex = 'M', *cap_letters):
print "name ", name
print "age ", age
print "sex ", sex
for s in cap_letters:
print "capital letter: ", s
name &年龄参数是位置参数。性别是默认参数,其次是非关键字参数的可变长度,这是非常少的随机资本字母。所以,现在,如果我跑
anyFunc("Mona", 45, 'F', *('H', 'K', 'L'))
它给我完美的输出..
name Mona
age 45
sex F
capital letter: H
capital letter: K
capital letter: L
但是,如果我通过下面,我想使用默认性值,而不是传递的参数。产出不如预期的。
anyFunc("John", 45, *('H', 'K', 'L'))
name John
age 45
sex H
capital letter: K
capital letter: L
它应该采用性别的默认值即'M'。我也尝试在最后通过性别论证,但它给了我语法错误。有什么方法可以实现我想要的吗?
我的Python 3.0≥,你可以做'sex'一个[关键词 - ** **仅参数(https://www.python.org/dev/ PEPS/PEP-3102 /)。但是,在Python 2.x中,您没有该选项。 –