Python不首先传递第二个参数

时间:2017-12-28 09:50:11

标签: python-3.x function

我的Python函数不符合我的预期:

def xyz(x=1, y=2):
    print(str(x), str(y))

当我传入第二个参数(y)的参数时,我没有得到我期望的输出。

xyz(, 5)

我希望输出结果如下:

1 5

但相反,Python会产生错误。

2 个答案:

答案 0 :(得分:0)

语法错误。这是您为特定参数传递值的方法。

def xyz(x=1, y=2):
    print(str(x), str(y))

xyz(y=5)

答案 1 :(得分:0)

如果函数中有多个具有默认值的参数,则在调用它们时应该更具体。例如:

def xyz(z, x=1, y=2):     # z doesn't have a default value
    print(str(x), str(y))

xyz(3, x=5)      # correct
xyz(3, x=5, y=9) # correct
xyz(3, 9, 5)     # correct
xyz(5, 0, y=5)   # correct!
xyz(5, 0, x=5)   # incorrect!
xyz(x=5)         # incorrect!
xyz(3, ,)        # incorrect!

请记住,您必须在默认值参数

之前定义非默认值参数(也称为位置参数)