【Python 不定长参数 *argc**kargcs】目录
- 一.前言
- 二.Python 不定长参数 argc/*kargcs 简介
- 1.函数不定长参数 *args 使用
- 2.函数不定长参数 **kwargs 使用
- 3.函数不定长参数*args 和**kwargs 只能放在形参的末尾,顺序不能错.
- 三.Python 不定长参数 argc/*kargcs 实战
- 四.Python 不定长参数 argc/*kargcs 总结
- 五.猜你喜欢
一.前言在 Python 函数的声明和调用 中我们简单的了解了函数的相关使用,然而在函数传递参数的时候,我们埋下了一个坑,关于不定长参数的传递我们还没有讲,今天这篇文章主要就是讲解这个问题 。
Python 内置函数 print,这个函数想大家都会用,观察如下代码:
# !usr/bin/env python# -*- coding:utf-8 _*-"""@Author:猿说编程@Blog(个人博客地址): www.codersrc.com@File:Python 不定长参数 *argc/**kargcs.py@Time:2021/3/29 07:37@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""a = 1.0b = Falsec = "python教程 - 猿说编程"print("a = %g" % (a))print("a = %g b = %d" % (a,b))print("a = %g b = %d c = %s" % (a,b,c))'''输出结果:a = 1a = 1 b = 0a = 1 b = 0 c = python教程 - 猿说编程'''问题来了,内置 Python 内置函数 print 到底需要传递几个参数??
文章插图
二.Python 不定长参数 argc/*kargcs 简介Python 函数的不定长参数包含 *args 和 **kwargs ,完整实例如下:
# !usr/bin/env python# -*- coding:utf-8 _*-"""@Author:猿说编程@Blog(个人博客地址): www.codersrc.com@File:Python 不定长参数 *argc/**kargcs.py@Time:2021/3/29 07:37@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""def function_print(*args,**kwargs): # 传递不定长参数,即参数个数不固定print(args)print(kwargs)function_print()'''输出结果:(){}'''代码分析:由输出结果可以看出来,第一个形参 args 是元组 tuple 类型,第二个形参 *kwargs 是字典 dict 类型.1.函数不定长参数**** ***args 使用**a.形参 *args 类型是元组 tuple,外部调用函数时传递的参数不论是整数还是 BOOL 值或者是字符串 string ,实际上传递的都是元组数据;
b.如果函数形参是不定长参数,外部调用函数传递多个参数时,默认按顺序实参匹配形参,剩余的参数全部作为(元组)不定长参数传递;
c.如果没有为函数的不定长参数传递参数,默认为空元组();
示例代码如下:
# !usr/bin/env python# -*- coding:utf-8 _*-"""@Author:猿说编程@Blog(个人博客地址): www.codersrc.com@File:Python 不定长参数 *argc/**kargcs.py@Time:2021/3/29 07:37@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""#普通形参def function_print1(arg):print("普通形参 : arg=",arg)#不定长形参def function_print2(*args):print("不定长形参 : args=",args)#普通形参 + 不定长形参def function_print3(arg,*args):print("普通形参 + 不定长形参 : arg=",arg)print("普通形参 + 不定长形参 : args=",args)function_print1(False)function_print1("hello world")print("***"*20)function_print2(False)function_print2("hello world")print("***"*20)function_print3(False) # 只为函数传递了一个形参,不定长参数的形参默认为空元组()function_print3("hello world")print("***"*20)# 如果函数的形参是不定长参数,当外部调用函数传递多个参数时,默认按顺序匹配形参,剩余的参数全部作为不定长参数传递function_print3(False,1,23,4,5)function_print3("hello world",False,0,True,"python教程")'''输出结果:普通形参 : arg= False普通形参 : arg= hello world************************************************************不定长形参 : args= (False,)不定长形参 : args= ('hello world',)************************************************************普通形参 + 不定长形参 : arg= False普通形参 + 不定长形参 : args= ()普通形参 + 不定长形参 : arg= hello world普通形参 + 不定长形参 : args= ()************************************************************普通形参 + 不定长形参 : arg= False普通形参 + 不定长形参 : args= (1, 23, 4, 5)普通形参 + 不定长形参 : arg= hello world普通形参 + 不定长形参 : args= (False, 0, True, 'python教程')'''2.函数不定长参数**** ****kwargs 使用****a.形参 **kwargs 类型是字典 dict,函数外部调用函数传递参数时需要使用关键字参数,实参写法:a=1,b=2,c=False,d=”hello”;**b.如果函数形参是不定长参数,外部调用函数传递多个参数时,默认按顺序实参匹配形参,关键字参数全部作为(字典)不定长参数传递;
c.如果没有为函数的不定长参数传递参数,默认为空字典 {} ;
示例代码如下:
# !usr/bin/env python# -*- coding:utf-8 _*-"""@Author:猿说编程@Blog(个人博客地址): www.codersrc.com@File:Python 不定长参数 *argc/**kargcs.py@Time:2021/3/29 07:37@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""#普通函数def function_print1(arg):print("普通函数形参 : arg=",arg)#普通函数不定长形参def function_print2(**kwargs):print("不定长形参 : args=",kwargs)#普通函数形参 + 不定长形参def function_print3(arg,**kwargs):print("普通函数形参 + 不定长形参 : arg=",arg)print("普通函数形参 + 不定长形参 : args=",kwargs)function_print1(False)function_print1("hello world")print("***"*20)function_print2(a=False)function_print2(c="hello world")print("***"*20)function_print3(False)function_print3("hello world")print("***"*20)function_print3(False,a=1,b=23,h=4,v=5)function_print3("hello world",y=False,i=0,a=True,j="python教程")'''输出结果:普通函数形参 : arg= False普通函数形参 : arg= hello world************************************************************不定长形参 : args= {'a': False}不定长形参 : args= {'c': 'hello world'}************************************************************普通函数形参 + 不定长形参 : arg= False普通函数形参 + 不定长形参 : args= {}普通函数形参 + 不定长形参 : arg= hello world普通函数形参 + 不定长形参 : args= {}************************************************************普通函数形参 + 不定长形参 : arg= False普通函数形参 + 不定长形参 : args= {'a': 1, 'b': 23, 'h': 4, 'v': 5}普通函数形参 + 不定长形参 : arg= hello world普通函数形参 + 不定长形参 : args= {'y': False, 'i': 0, 'a': True, 'j': 'python教程'}'''3.函数不定长参数*args 和**kwargs 只能放在形参的末尾,顺序不能错.def function_print(arg1,*args,**kwargs): # *args,**kwargs 必须在形参的末尾,顺序不能乱pass三.Python 不定长参数 argc/*kargcs 实战# !usr/bin/env python# -*- coding:utf-8 _*-"""@Author:猿说编程@Blog(个人博客地址): www.codersrc.com@File:Python 不定长参数 *argc/**kargcs.py@Time:2021/3/29 07:37@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""'''普通函数形参 + 不定长形参:arg1:普通形参arg1:普通形参args:不定长参数-元组kwargs:不定长参数-字典'''def function_print(arg1,arg2,*args,**kwargs):print(arg1,arg2,args,kwargs)function_print(False,1,b=23,h=4,v=5)function_print("hello world",False,0,True,j="python教程",a=True)'''输出结果:False 1 () {'b': 23, 'h': 4, 'v': 5}hello world False (0, True) {'j': 'python教程', 'a': True}'''注意:注意参数的顺序匹配四.Python 不定长参数 argc/*kargcs 总结注意函数传参的三种形式:
- 1.普通传参;
- 2.缺省参数,如果外部没有为缺省参数传递实参,形参等于默认值;
- 3.注意不定长参数的拆包,普通实参打包为元组 tuple 类型,关键字参数打包为字典 dict 类型;
- Python 配置环境
- Python 变量
- Python 运算符
- Python 条件判断 if/else
- Python while 循环
- Python break
- Python continue
- Python for 循环
- Python 字符串
- Python 列表 list
- Python 元组 tuple
- Python 字典 dict
- Python 条件推导式
- Python 列表推导式
- Python 字典推导式
本文由博客 - 猿说编程 猿说编程 发布!
- 春季老年人吃什么养肝?土豆、米饭换着吃
- 三八妇女节节日祝福分享 三八妇女节节日语录
- 老人谨慎!选好你的“第三只脚”
- 校方进行了深刻的反思 青岛一大学生坠亡校方整改校规
- 脸皮厚的人长寿!有这特征的老人最长寿
- 长寿秘诀:记住这10大妙招 100%增寿
- 春季老年人心血管病高发 3条保命要诀
- 眼睛花不花要看四十八 老年人怎样延缓老花眼
- 香槟然能防治老年痴呆症? 一天三杯它人到90不痴呆
- 老人手抖的原因 为什么老人手会抖
