Python 关键字参数函数介绍
发布时间:2023-06-27 10:31:51 所属栏目:教程 来源:
导读:关键字参数通常情况下,调用函数时,以直接给出参数值的形式传递参数,如下所示:
def add(a, b):return a + b
add(, )
在第 3 行,整数 1 和整数 2 作为参数值传递给参数 a 和 参数 b
Python 允许调用函
def add(a, b):return a + b
add(, )
在第 3 行,整数 1 和整数 2 作为参数值传递给参数 a 和 参数 b
Python 允许调用函
关键字参数通常情况下,调用函数时,以直接给出参数值的形式传递参数,如下所示: def add(a, b):return a + b add(, ) 在第 3 行,整数 1 和整数 2 作为参数值传递给参数 a 和 参数 b Python 允许调用函数时,以 “参数名 = 参数值” 的形式传递参数,如下所示: def add(a, b):return a + b add(a = , b = ) 参数名 = 参数值 形式的参数,例如 a = 1 和 b = 2,被称为关键字参数。在函数定义中,在参数前加上符号 ** 参数表示函数可以接收关键字参数,如下所示: def 函数(**kw_args):函数体 该函数被设定为能够接收关键字参数 kw_args 的类型是字典 调用该函数时,所有的关键字参数被合并成一个字典 合并后的字典被赋值给 kw_args,通过访问 kw_args 可以访问参数名和参数值 例子 假设需要通过两种方式来创建一个人的姓名: 直接给出人的姓名,需要一个参数:full_name 例子,如果 full_name 等于 ‘ZhangSan’,则用这种方式创建的姓名是 ‘ZhangSan’ 分别给出人的姓和名,需要两个参数: first_name 和 last_name 参数 first_name 表示姓 参数 last_name 表示名 例子,如果 first_name 等于 ‘Zhang’、last_name 等于 ‘San’,则用这种方式创建的姓名是 ‘ZhangSan’ 现在使用 Python 的关键字参数机制完成函数 create_full_name,代码如下: def create_full_name(**kw_args):if 'full_name' in kw_args:full_name = kw_args['full_name']return full_nameif 'first_name' in kw_args and 'last_name' in kw_args:first_name = kw_args['first_name']last_name = kw_args['last_name']full_name = first_name + last_namereturn full_nameprint(create_full_name(full_name = 'ZhangSan'))print(create_full_name(first_name = 'Li', last_name = 'Si')) 运行程序,输出结果如下: ZhangSan LiSi 在第 1 行,创建函数 create_full_name,该函数能够接受关键字参数 该函数被调用时,所有关键字参数被合并成一个字典,被赋值给参数 kw_args kw_args 的类型是字典,它包含了所有的关键字参数 在第 2 行,检查 kw_args 中是否包含参数 full_name 在第 3 行,从 kw_args 中获取参数 full_name 的值 在第 4 行,返回 full_name 在第 6 行,检查 kw_args 中是否包含参数 first_name 和 last_name 在第 7 行,从 kw_args 中获取参数 first_name 的值 在第 8 行,从 kw_args 中获取参数 last_name 的值 在第 9 行,根据 first_name 和 last_name 计算 full_name 在第 10 行,返回 full_name 在第 12 行,通过 “直接给出人的姓名” 的方式调用 create_full_name 传递关键字参数 full_name = ‘ZhangSan’ 关键字参数被合并入一个字典 kw_args 字典 kw_args 中包含一条键值对 在第 12 行,通过 “分别给出人的姓和名” 的方式调用 create_full_name 传递关键字参数 first_name = ‘Li’、last_name = ‘Si’ 关键字参数被合并入一个字典 kw_args 字典 kw_args 中包含两条键值对 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |