任何编程语言函数都是非常重要的一部分,而在进行函数调用时,了解函数的参数传递方式是非常有必要的。Python中支持哪些传参方式呢?
Python中的传参方式是比较灵活的,主要包括以下六种:
-
按照位置传参
-
按照关键字传参
-
默认参数
-
元组传参
-
字典传参
-
综合传参
按照位置传参
更多Python视频、源码、资料加群683380553免费获取
顾名思义,实参与形参数目一致,并且是按照位置一一对应的。
def func(a, b): return a+b*2
当调用函数func(1,2)时,则按照a=1,b=2的方式形参与实参对应,返回结果为5。
按照关键字传参
这种方式在调用函数时既传实参,也传形参。因而,不需要根据位置对应了,位置可以颠倒:
def func(a, b): return a+b*2
当调用函数func(b=1,a=2)时,则按照b=1,a=2的方式形参与实参对应,匹配的方式是关键字而非位置,返回结果为4。
默认参数
默认参数必须放在前两类参数之后,在调用函数的时候可以传参,也可以不传。不传则采用默认的参数值。
def func(a, b, c = 3): return a+b*2+c
其中,c为默认参数。当通过func(1,2)调用函数时,c的取值为默认值3,函数的执行结果为8;当通过func(1,2,5)调用函数时,c的取值为实参值5,函数的执行结果为10。
元组传参
传入的参数以元组的形式呈现,长度不限,可以通过元组的访问方式依次访问各个入参:
def func(*args): for eacharg in args: print ('tuple arg:', eacharg)
调用方式如下:func('I', 'Love', 'PythonSomething')
更多Python视频、源码、资料加群683380553免费获取
调用结果为:
tuple arg: I tuple arg: Love tuple arg: PythonSomething
字典传参
传入的参数以字典的形式呈现,长度不限,可以通过字典的访问方式依次访问各个入参:
def func(**kwargs): for eachkwarg in kwargs.keys(): print('Dict Arg', eachkwarg, ':', kwargs[eachkwarg])
调用方式如下:
func(English_name = 'PythonSomething', Chinese_name= 'Python那些事')
调用结果为:
Dict Arg English_name : PythonSomething Dict Arg Chinese_name : Python那些事
综合传参
是以上几种传参方式的综合。实际上,大家从上面的例子也可以发现,元组传参和字典传参已经能够满足大部分传参场景。所以,通常所的综合传参指的是这两种的组合,大家在源码中也经常会发现它们的身影:
def func(*args,**kwargs): for eacharg in args: print('tuple arg:', eacharg) for eachkwarg in kwargs.keys(): print('Dict Arg', eachkwarg, ':', kwargs[eachkwarg])
调用示例为:
func('I', 'Love', 'PythonSomething', English_name = 'PythonSomething', Chinese_name= 'Python那些事')
调用结果为:
tuple arg: I tuple arg: Love tuple arg: PythonSomething Dict Arg Chinese_name : Python那些事 Dict Arg English_name : PythonSomething
热门文章
- 开宠物食品加工厂需要什么手续(开个宠物食品厂要投资多少钱)
- 销售动物疫苗免税吗 销售动物疫苗免税吗现在
- 动物医院社会实践报告怎么写的(动物医院社会实践总结)
- 1分钟掌握 Python 函数参数
- 全国兽药50强企业名单联系电话 全国兽药30强企业
- 北京宠爱宠物医院怎么样(北京宠爱国际动物医院工作怎么样)
- 家养2个月小猫咬出血要紧吗视频(两个月的猫咬出血了需要打针吗)
- 猫三联打几针多少钱(猫三联打三针还是两针)
- 「2月2日」最高速度19.8M/S,2025年Shadowrocket/V2ray/Clash/SSR每天更新免费订阅地址分享
- 「2月28日」最高速度22M/S,2025年V2ray/SSR/Shadowrocket/Clash每天更新免费订阅地址分享