注册 登录
Python基础教程

第一章: 环境搭建,安装Python

第二章: 挑选一款趁手的IDE

第三章: 计算机基础知识

第四章: 命令行基础知识

第五章: 从全局把握Python

第六章: Python语言基础

第七章: Python流程控制

第八章: Python数据类型与运算

第九章: Python字符串类型

第十章: Python列表类型

第十一章: Python元祖类型

第十二章: Python字典类型

第十三章: Python集合类型

第十四章: Python函数处理

第十五章: Python文件处理

第十六章: Python面向对象

第十七章: Python异常处理

第十八章: Python模块处理

第十九章: Python项目实战

首页 > Python基础教程 > 第十四章: Python函数处理 > 14.2节:函数的参数用法

14.2节:函数的参数用法

薯条老师 2020-05-21 13:36:43 207955 1

编辑 收藏

广州番禺Python, Java小班周末班培训

薯条老师的线下Python,Java小班周末班已经开课了,培训的课程有Python爬虫,Python后端开发,Python办公自动化,Python大数据分析,Java后端开发。授课详情请点击:http://chipscoco.com/?cate=6

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中的变量是一个保存内存地址的容器,当传递的参数是复合数据类型时,传递的是变量所存储的内存地址的拷贝。所谓的引用类型参数,是指函数体中的参数与实参引用的是同一块内存空间。

14.2.6 高薪就业班

(1) Python后端工程师高薪就业班,月薪10K-15K,免费领取课程大纲
(2) Python爬虫工程师高薪就业班,年薪十五万,免费领取课程大纲
(3) Java后端开发工程师高薪就业班,月薪10K-20K, 免费领取课程大纲
(4) Python大数据工程师就业班,月薪12K-25K,免费领取课程大纲

扫码免费领取学习资料:



已有1位薯条发表了看法:

  • 访客

    访客  评论于 2020-12-04 19:34:08  回复

    最后一个实例,x = 1的对齐出错了

欢迎 发表评论:

请登录

忘记密码我要注册

注册账号

已有账号?请登录