python一个函数可以有参数也可以没有参数_关于python函数参数的问题?

参数在python中总是通过赋值进行传递的。在默认情况下,参数是通过其位置进行匹配的,从左到右,而且必须精确的传递和函数头部参数名一样多的参数。

这种默认的传递方式很简单

def f(a,b,c):

print(a,b,c)

f(1,2,3)

1 2 3

python中可以使用基于关键字的参数匹配形式。在调用函数的时候,能够更详尽的定义内容传递的位置。关键字参数允许通过变量名进行匹配,而不是通过位置。

def f(a,b,c):

print(a,b,c)

f(c=3,a=1,b=2)

1 2 3

我们可以看出,当关键字参数使用时参数从左至右的关系已不再重要了,因为参数是通过变量名进行传递的,而不是通过其位置。这种调用显得更文档化一些(例如使用一些名称更直观的参数名)。

甚至在一个调用中混合使用基于位置的参数和基于关键字的参数也可以。在这种情况下,所有基于位置的参数首先按照从左到右的顺序匹配头部的参数,之后再进行基于变量名进行关键字的匹配。

def f(a,b,c):

print(a,b,c)

f(1,c=3,b=2)

1 2 3

再来说说python中的默认参数形式。默认参数允许创建函数可选的参数,如果没有传入值的话,在函数运行前,参数就被赋予了默认值,还是看一个例子:

def f(a,b=2,c=3):

print(a,b,c)

f(1)

1 2 3

f(a=1)

1 2 3

看到这个例子中,我们必须为a提供值,无论是通过位置参数还是关键字参数来实现

你可能感兴趣的:(python一个函数可以有参数也可以没有参数_关于python函数参数的问题?)