python函数的4种参数类型 |
您所在的位置:网站首页 › python中组合数据类型有哪几种 › python函数的4种参数类型 |
总结 python 函数中的不同参数类型的使用方法。 在调用函数时,通常会传递参数,函数内部的代码保持不变,针对 不同的参数 处理 不同的数据。 有位置传参、关键字传参、默认值参数、多值参数等。 1、参数传递形参和实参: 形参:定义 函数时的 参数变量实参:调用 函数时,使用的参数变量参数传递的过程,就是 把实参的引用 传递给 形参 ,使用实参的值来执行函数体的过程。 在 Python 中,函数的 实参/返回值 都是是靠 引用 来传递来的 2、位置实参按照参数位置,依次传递参数,这是最普通的方式。 def location(a, b) print(a + b) location(3, 9) "调用函数时,按顺序传递参数,3 传给 a,9 传给 b" 3、关键字实参如果不想严格按照顺序传递参数,也可以按关键字传递。 def location(a, b) print(a + b) location(b = 3, a = 9) "调用函数时,按关键字传递参数,3 传给 b,9 传给 a" 4、缺省参数定义函数时,可以给 某个参数 赋值一个默认值,具有默认值的参数就叫做 缺省参数 调用函数时,如果没有传入 缺省参数 的值,则在函数内部使用 参数默认值将常见的值设置为参数的缺省值,从而 简化函数的调用 要使用 最常见的值 作为默认值如果一个参数的值 不能确定,则不应该设置默认值,具体的数值在调用函数时,由外界传递!例如:对列表排序的方法 gl_num_list = [6, 3, 9] "默认就是升序排序,因为这种应用需求更多" gl_num_list.sort() print(gl_num_list) "只有当需要降序排序时,才需要传递 'reverse' 参数" gl_num_list.sort(reverse=True) print(gl_num_list)缺省参数的定义位置: 必须保证带有默认值的缺省参数在参数列表末尾!调用带有多个缺省参数的函数: 在 调用函数时,如果有 多个缺省参数,需要指定参数名,这样解释器才能够知道参数的对应关系! def print_info(name, title="", gender=True): gender_text = "男生" if not gender: gender_text = "女生" print("%s%s 是 %s" % (title, name, gender_text)) # 提示:在指定缺省参数的默认值时,应该使用最常见的值作为默认值! print_info("小明") print_info("老王", title="班长") print_info("小美", gender=False) 5、多值参数当函数需要处理的参数个数不确定时,可使用 多值参数。 python 中有两种多值参数: 接收 元组:参数名前加 一个 *接收 字典:参数名前加 两个 *一般在给多值参数命名时,习惯使用以下两个名字 *args — 存放 元组 参数**kwargs — 存放 字典 参数,(kw 即 keyword,kwargs 即 键值对参数) def demo(num, *args, **kwargs): print(num) print(args) print(kwargs) demo(1, 2, 3, 4, 5, name="小明", age=18, gender=True) 输出: 1 (2, 3, 4, 5) {'name': '小明', 'age': 18, 'gender': True} 拆包在上面多值参数传递时,实际上使用了拆包功能。 拆包主要用于元组和字典参数的传递。 在调用带有多值参数的函数时,使用拆包简化参数的传递: 直接将一个 元组变量 实参传递给元组形参 args 在 元组变量前,加 * 直接将一个 字典变量 实参传递给字典形参 kwargs 在 字典变量前,加 ** def demo(*args, **kwargs): print(args) print(kwargs) gl_nums = (1, 2, 3) gl_xiaoming = {"name": "小明", "age": 18} "变量名前必须要加 * 号,否则不能无法正常拆包" "错误演示(不加 * 号):" demo(gl_nums, gl_xiaoming) 输出: ((1, 2, 3), {'name': '小明', 'age': 18}) {} "正确演示(加 * 号):" demo(*gl_nums, **gl_xiaoming) 输出: (1, 2, 3) {'name': '小明', 'age': 18} |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |