Python 中的默认值是什么?

Python 中的默认值是什么?

Python 语言对函数参数的语法和默认值表示方式有所不同。

默认值是指在函数调用时未给出参数值时,函数参数将采用该值。 默认值是通过使用形如关键字名称=值的赋值 (=) 运算符来分配的。

更多Python相关文章,请阅读:Python 教程

示例

# 创建一个带有默认值的函数
def tutorialspoint(website, author ='XYZ', language ='Python'):
   print(website, "网站文章由语言是", author,"的作者写的", language)

不使用关键字参数调用函数

示例

# 创建一个带有默认值的函数
def tutorialspoint(website, author ='XYZ', language ='Python'):
   print(website, "网站文章由语言是", author,"的作者写的", language)
# 调用仅有的 1 个位置参数(website)
# 在这里,它采用了给定的默认值 author(XYZ) 和 language(Python)
tutorialspoint('教程点')
# 调用 3 个位置参数 (website, author, language)
tutorialspoint('教程点', '亚历克斯', 'Java')
# 调用 2 个位置参数 (website, author)
# 在这里,它采用了给定的默认值 language(Pyhton)
tutorialspoint('教程点', '盖尔')
# 在这里,它采用了给定的默认值 author(XYZ)
tutorialspoint('教程点', 'C++')

输出

在执行上述程序时,将生成以下输出 –

教程点网站文章由语言是 XYZ 的作者写的 Python
教程点网站文章由语言是 Alex 的作者写的 Java
教程点网站文章由语言是 Gayle 的作者写的 Python
教程点网站文章由作者是 C++ 的语言 Python

说明

  • 在第一种情况下,第一个调用中只需一个必需的参数,其余参数设置为默认值。

  • 在第二个函数调用中,我们将函数称为 3 个位置参数 (website, author, language) 的函数。 参数的值 author 和 standard 从默认值更改为传递的新值。

使用关键字参数调用函数

示例

# 给定默认值创建函数
def tutorialspoint(website, author ='XYZ', language ='Python'):
   print(website, "作者编写了此网站文章", author,"语言为", language)
# 仅使用关键字调用1个定位参数(website)
# 在此使用了默认的作者(XYZ)和语言(Python)值
tutorialspoint(website= 'tutorialspoint')
# 使用关键字调用2个定位参数(website, language)
tutorialspoint(website= 'tutorialspoint', language = 'Java')
# 使用关键字调用2个定位参数(author, website)
# 关键字的顺序并非强制性的
# 在此使用了默认的语言(Python)值
tutorialspoint(author= 'Gayle', website= 'tutorialspoint')

输出

执行以上程序后,将产生以下输出-

tutorialspoint 作者编写了此网站文章 XYZ 语言为 Python
tutorialspoint 作者编写了此网站文章 XYZ 语言为 Java
tutorialspoint 作者编写了此网站文章 Gayle 语言为 Python

说明

  • 第一个调用仅需要一个关键字参数。

  • 在第二个调用中,需要一个必需参数和一个可选参数( language ),并将其默认值更改为新的传递值。

  • 我们可以从第三个调用中看到, 关键字参数的 顺序 不重要/非强制性的。

无效的函数调用(会引发错误)

现在我们来看一些函数调用无效的情况,这些情况会抛出错误。

例子

# 给定默认值创建函数
def tutorialspoint(website, author ='XYZ', language ='Python'):
   print(website, "作者编写了此网站文章", author,"的语言为", language)
# 没有传递参数给函数,因此会出现一个错误
tutorialspoint()

输出

执行以上程序后,将产生以下输出-

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

没有传递参数给函数,因此会出现一个错误

# creating a function by giving default values
def tutorialspoint(website, author ='XYZ', language ='Python'):
   print(website, "作者编写了此网站文章", author,"的语言为", language)
# 使用了多余的参数(定位参数和关键字参数的组合)
tutorialspoint(website='tutorialspoint', author='Nina', language ='Python','extra argument')

输出

执行以上程序后,将产生以下输出-

File "main.py", line 7
    tutorialspoint(website='tutorialspoint', author='Nina', language ='Python','extra argument')
                                                                               ^
SyntaxError: positional argument follows keyword argument

使用了多余的参数(定位参数和关键字参数组合),因此会出现一个错误

# 通过设置默认值创建一个函数
def tutorialspoint(website, author ='XYZ', language ='Python'):
   print(website, "网站文章由作者编写", author,"使用语言", language)
# 为作者设置了一个非关键字参数(Alex)
# 在关键字参数(tutorialspoint)之后。因此会发生错误
tutorialspoint(website= 'tutorialspoint', 'Alex')

输出

运行以上程序,将生成以下输出 –

File "main.py", line 6
    tutorialspoint(website= 'tutorialspoint', 'Alex')
                                              ^
SyntaxError: 位置参数跟随关键字参数之后

在关键字参数之后,有一个非关键字参数(Alex)(tutorialspoint)。因此会发生错误。

示例

# 通过设置默认值创建一个函数
def tutorialspoint(website, author ='XYZ', language ='Python'):
   print(website, "网站文章由作者编写", author,"使用语言", language)
# 在函数中未定义关键字(address)
# 因此引发错误
tutorialspoint(address ='Hyderabad')

输出

运行以上程序,将生成以下输出 –

Traceback (most recent call last):
  File "main.py", line 6, in <module>
tutorialspoint(address ='Hyderabad')
TypeError: tutorialspoint() got an unexpected keyword argument 'address'

因为函数中未定义关键字(未知关键字参数),因此引发错误。

使用可变对象作为默认参数

必须非常小心。这是因为当控制流到达函数时,参数的默认值仅计算一次。

首先是定义,随后在后续函数调用中引用相同的值(或可变对象)。

示例

# 通过将列表元素、新列表作为参数传递创建一个函数
# 函数在将元素附加到新列表后返回新列表
def appendingElement(listElement, newList = []):
   newList.append(listElement)
# 返回一个新列表
   return newList
# 通过将列表元素作为参数来调用函数
# 并打印结果新列表
print(appendingElement('hello'))
print(appendingElement('tutorialspoint'))
print(appendingElement('python'))

输出

['你好']
['你好', '教程点']
['你好', '教程点', 'Python']

结论

在本文中,我们学习了Python函数中的默认值。 通过使用一些示例,我们了解了默认参数和参数。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程