目录
14.2.1 位置参数与关键字参数
14.2.2 函数的参数默认值
14.2.3 函数的引用类型参数
14.2.4 函数的可变参数
14.2.5 知识要点
14.2.6 系统学习python
14.2.1 位置参数与关键字参数
位置参数与参数的位置相关,这里的位置是指定义函数时的从左到右的参数排列顺序。在调用函数时,会自动将实参与形参的位置对应起来。如果无法建立参数之间的一一对应的关系,那么Python解释器会抛出类型错误的异常信息。
当实参数目小于或大于形参的数目时,不能建立参数之间的一一对应的关系。
关键字参数是指调用函数时,将形参名当做键名,将实参当做键值,以键名=键值的语法形式来进行调用。关键字参数的调用语法:
function(key=value)
这里的key即形参名,value即为实参值。以关键字参数的形式进行调用时,Python解释器会自动将实参值与形参对应起来,无需识记形参的位置。
代码实例:
# __desc__ = 分别以位置参数和关键字参数的形式来调用函数
# 定义一个简单的函数,将参数进行返回
def just_return(x, y, z):
return x,y,z
# 以位置参数的形式来进行调用
x,y,z=just_return(3,2,1)
# 实参3对应的形参是x,实参2对应的形参是y,实参1对应的形参是z
# 以关键字参数的形式来进行调用
x,y,z=just_return(z=3, y=2, x=1)
# Python自动将实参与形参对应起来,例如实参3对应的形参是z
使用关键字参数的方式进行调用时,无需识记函数定义时的参数顺序。
14.2.2 函数的参数默认值
在定义函数时,可以为参数设置默认值,语法形式为:
def function_name(parameter=default_value):
pass
default_value表示参数的默认值。为参数设置默认值以后,如果不传递对应的实参,那么会使用默认值进行代替。
代码实例:
# __desc__ = 为参数设置默认值
# 定义一个简单的函数,将参数进行返回
def just_return(x, y=2, z=3):
""" 参数y的默认值为2, 参数z的默认值为3 """
return x,y,z
# 下面的函数调用是合法的,没有传递对应的位置实参时,将使用参数的默认值
x,y,z=just_return(1)
# 下面的函数调用是合法的,没有传递对应的位置实参时,将使用参数的默认值
x,y,z=just_return(1,3)
定义参数的默认值时,要按从右到左的参数顺序来设置默认值,否则Python会抛出语法错误的异常信息:
# __desc__ = 必须按从右到左的参数顺序来设置默认值
# 定义一个简单的函数,将参数进行返回
def just_return(x=1, y,z):
""" 参数x的默认值为1 """
return x,y,z
"""
上面的函数定义是非法的,假设我们按位置参数的方式来进行调用:
x,y,z=just_return(3,2,1)
在按位置参数的方式进行调用时,实参与形参是以从左到右的调用顺序进行对应的。
所以只为形参x设置默认值,毫无意义。
初学者可能会以这样的方式进行调用:
x,y,z=just_return(3,2)
此时,实参3对应的是形参x,实参2对应的是形参y,形参z没有对应的实参,
Python会抛出语法错误的异常信息。
"""
14.2.3 函数的引用类型参数
Python中的变量是一个保存内存地址的容器,当传递的参数是复合数据类型时,传递的是变量所存储的内存地址的拷贝。在函数中对该类型参数进行修改时,修改的是同一块内存空间的值。所谓的引用类型参数,是指函数体中的参数与实参引用的是同一块内存空间。
Python中的复合数据类型:字符串,列表,元组,字典,集合。
代码实例:
# __desc__ = 函数调用时,传递复合数据类型
# 定义一个简单的函数,在函数体中对参数进行修改
def add_number(numbers, number):
""" numbers是一个列表类型 """
numbers.append(number)
# 定义列表变量
numbers=[1,2,3]
# 调用函数add_number
add_number(numbers, 4)
# numbers的输出为[1,2,3,4]
由于修改的是同一块内存空间的值,所以即使函数调用结束以后,也会影响到函数体之外的变量。在上文的代码实例中,调用函数前列表numbers的输出为:
[1,2,3]
在函数体中,将实参4添加至列表numbers中,在函数体中的输出为:
[1,2,3,4]
由于修改的是同一块内存空间的值,所以函数调用结束后,列表numbers的输出同样为:
[1,2,3,4]
当传递的是简单数据类型时,只是将值进行拷贝:
# __desc__ = 函数调用时,传递简单数据类型
# 定义一个简单的函数,在函数体中对参数进行修改
def just_change(x):
x = 0
print(x)
# 在函数体中对x进行修改,x的输出为0
# 定义整型类型变量x,初值为1
x = 1
# 调用函数,传递变量x
just_change(x)
# 函数调用结束以后,输出变量x的值
print(x)
# x的输出仍然为1
Python中的简单数据类型:整型,浮点类型,布尔类型
14.2.4 函数的可变参数
在定义函数时,如果不能确定函数的参数个数,可以使用可变参数。可变参数涉及的知识点比较多,对于函数的可变参数,将在14.3节中进行详细讲解。
14.2.5 知识要点
(1) 位置参数与参数的位置相关,这里的位置是指定义函数时的从左到右的参数排列顺序。
(2) 关键字参数是指调用函数时,将形参名当做键名,将实参当做键值,以键名=键值的语法形式来进行调用。
(3) 定义函数时,可以为参数设置默认值,默认值必须以从右到左的参数顺序来设置默认值。
在调用函数时,如果不传递对应的实参,那么会使用默认值进行代替。
(4) Python中的变量是一个保存内存地址的容器,当传递的参数是复合数据类型时,传递的是变量所存储的内存地址的拷贝。所谓的引用类型参数,是指函数体中的参数与实参引用的是同一块内存空间。文章来源:https://www.toymoban.com/news/detail-502548.html
14.2.6 系统学习python
薯条老师简介:资深技术专家,技术作家,著有《Python零基础入门指南》,《Java零基础入门指南》等技术教程。薯条老师的博客:http://www.chipscoco.com, 系统学习后端,爬虫,数据分析,机器学习、量化投资。文章来源地址https://www.toymoban.com/news/detail-502548.html
到了这里,关于Python入门教程+项目实战-14.1节-函数的参数用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!