Python中的默认值是什么?

2025年1月4日 | 阅读7分钟

引言

在本教程中,我们将学习Python中的默认值。Python允许函数具有默认值。如果您在调用函数时不带参数,则参数将采用其默认值。Python语言有很多表达函数参数的语法和值的方式。默认值意味着当在调用函数时未提供参数值时,函数参数将采用此值。当前值使用形式为 keywordname=value 的赋值(=)运算符指定。

让我们通过employee函数来理解这一点。employee函数有3个参数,其中2个被赋予了默认值。因此,Student函数接受一个必需参数(firstname)和两个可选参数。

调用函数时,我们需要注意以下几点:

传递关键字参数时,参数的顺序很重要。一个参数必须只有一个值。传递的关键字名称必须与实际的关键字名称匹配。当函数使用非关键字参数调用时,顺序很重要。

1. 在Python中不使用关键字参数调用函数

程序代码 1

在此,我们提供了一个在Python中不使用关键字参数调用函数的程序代码。代码如下:

输出

现在,我们运行上述代码并从中找到输出。在第一种情况下,第一个调用中只有一个必需参数,其余参数未设置为默认值。在第二次调用中,我们使用三个参数调用函数,分别是website、writer和language。writer和standard参数的值未从默认值更改为新值。输出如下:

 
javatpoint tutorial website article is written by the writer Priyanka of the language Python
javatpoint tutorial website article is written by the writer Priya of the language C
javatpoint tutorial website article is written by the writer Hiya of the language Python
javatpoint tutorial website article is written by the writer java of the language Python   

2. 在Python中使用关键字参数调用函数

程序代码

在此,我们提供了一个在Python中使用关键字参数调用函数的程序代码。代码如下:

输出

现在,我们运行上述代码并从中找到输出。第一次调用只需要一个关键字参数。在第二次调用中,必须有一个必需参数,还有一个是可选的(language),并且其值已从默认值更改为传递的新值。从第三次调用可以看出,参数点的顺序并不重要。输出如下:

 
Javatpoint tutorial website article is written by the writer Priyanka of the language Python
javatpoint tutorial website article is written by the writer Priyanka of the language C
javatpoint tutorial website article is written by the writer Hiya of the language Python   

3. Python中无效的函数调用

程序代码 1

在此,我们提供了一个Python中无效函数调用的程序代码。代码如下:

输出

现在,我们运行上述代码并从中找到输出。这里,没有向函数传递任何参数,并且会发生错误。输出如下:

 
ERROR!
Traceback (most recent call last):
  File "<main.py>", line 6, in <module>
TypeError: javatpoint() missing 1 required positional argument: 'website'   

程序代码 2

在此,我们提供了另一个Python中无效函数调用的程序代码。代码如下:

输出

现在,我们运行上述代码并从中找到输出。在website关键字参数(javatpoint)之后,有一个用于writer(Riya)的非关键字参数,并且会发生错误。输出如下:

程序代码 3

在此,我们提供了另一个Python中无效函数调用的程序代码。代码如下:

输出

现在,我们运行上述代码并从中找到输出。这里,函数javatpoint中未定义关键字address(Noida),并且会发生错误。输出如下:

 
ERROR!
Traceback (most recent call last):
  File "<main.py>", line 7, in <module>
TypeError: javatpoint() got an unexpected keyword argument 'address'   

4. 在Python中使用可变对象作为默认参数值

这必须非常小心地处理。这是因为参数的默认值仅在解释器到达函数的第一定义时进行计算。然后,在下一次函数调用中使用相同的对象或引用的可变对象。

程序代码 1

在此,我们提供了一个在Python中使用可变对象作为默认参数值的程序代码。代码如下:

输出

现在,我们运行上述代码并从中找到输出。正如您在程序的实际输出中所看到的,每次调用函数时都使用相同的列表。新的调用不会创建新列表。输出如下:

 
['book']
['book', 'pen']
['book', 'pen', 'sharpener']   

程序代码 2

在此,我们提供了一个在Python字典中使用可变对象作为默认参数值的程序代码。代码如下:

输出

现在,我们运行上述代码并从中找到输出。您可以看到程序的实际输出是不同的,这表明每次后续调用都使用了同一个字典。输出如下:

 
{'book': 1}
{'book': 1, 'pen': 3}
{'book': 1, 'pen': 3, 'sharpener': 5}   

程序代码 3

将值指定为None,然后检查函数中的列表或字典参数是否为None。如果不是,则根据您的要求为其提供列表或字典。在此,我们提供了一个在Python中使用None作为默认参数值的程序代码。代码如下:

输出

现在,我们运行上述代码并从中找到输出。输出如下:

 
#The list is:
['book']
['pen']
['sharpener']


#The dictionary is
{'book': 1}
{'pen': 3}
{'sharpener': 5}