Python 关于调用函数的正确方法

Python 关于调用函数的正确方法,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,假设有一个函数定义为 def function1(x, y, z=True,a): ... ... 当我调用function1时,似乎可以用以下方式调用函数 function1(10,2,3) function1(x=10,y=2,a=3) 但是调用function1(x=10,y=2,3)将导致错误,其中3应分配给a。通常,在不引起潜在问题的情况下调用函数的正确方法是什么。在python 2或3中,这不是定义函数的有效方法。默认参数(具有默认值的参数,即x=y)必须位

假设有一个函数定义为

def function1(x, y, z=True,a):
     ...
     ...
当我调用function1时,似乎可以用以下方式调用函数

function1(10,2,3)

function1(x=10,y=2,a=3)

但是调用
function1(x=10,y=2,3)
将导致错误,其中
3
应分配给
a
。通常,在不引起潜在问题的情况下调用函数的正确方法是什么。

在python 2或3中,这不是定义函数的有效方法。默认参数(具有默认值的参数,即
x=y
)必须位于非默认参数之后。在函数定义中,您应该会收到以下错误:

File "<stdin>", line 1
SyntaxError: non-default argument follows default argument
文件“”,第1行
SyntaxError:默认参数后面跟着非默认参数

这不是在python 2或3中定义函数的有效方法。默认参数(具有默认值的参数,即
x=y
)必须位于非默认参数之后。在函数定义中,您应该会收到以下错误:

File "<stdin>", line 1
SyntaxError: non-default argument follows default argument
文件“”,第1行
SyntaxError:默认参数后面跟着非默认参数

Hi,您的意思是,对于上面定义的函数,我必须将其称为function1(x=10,y=2,3,z=True)。因为z在函数设置中具有默认值。即使我想使用z的默认值,我仍然需要在调用函数时显式地写下它。是吗?不,我的意思是你不能这样定义函数。您的示例无效,函数定义中的默认参数必须在其他参数之后。您好,您的意思是,对于上面定义的函数,我必须将其称为function1(x=10,y=2,3,z=True)。因为z在函数设置中具有默认值。即使我想使用z的默认值,我仍然需要在调用函数时显式地写下它。是吗?不,我的意思是你不能这样定义函数。您的示例无效,函数定义中的默认参数必须位于其他参数之后。