持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第24天,点击查看活动详情
0 环境
- 编辑器:idea或vscode
- 系统版本:windows10
- python版本:3.9.6
1 位置参数
如下代码:函数传参,相加,字符串拼接并打印,返回相加的值。这里要注意的就是:函数调用的时候,这个两个值按照函数参数的位置,也就是顺序,可以看作是从左往右,依次映射赋值,可以对比理解为:add(a=1, b=2),这样写只是为了帮助大家方便理解用的。
def add(a, b):
ret = a + b
print(f"{a} + {b} = {ret}")
return ret
if __name__ == '__main__':
add(1, 2)
2 关键字参数
接着上面的位置参数说事,假如参数太多了,一一映射的话,很容易出差错,还有一种就是我就不想按顺序来,那python怎么处理这些人的问题呢,出现了关键字参数,它是利用关键字传递值,参数根据定义时给定的变量名入参。也就说关键字参数可以无序(随心)的传参。
有没有其他的方式呢,部分有序和部分自定义,是有的,关键字参数和位置参数混用。注意事项:位置参数在前,关键字在后。如下图片:我们的目的是每个参数都有值,但假如我关键字在前呢,这里先传入关键字参数,打乱了顺序,对于后面的位置参数来说,python怎么判断它们的位置呢,但你会说,我也是遵守的呀,比如add(a=1,b),听话,根据规则来。还有一种错误就是,add(1,a=2),相当于1给了a,然后你又把2也给了a,你站在b的角度来看,你认为合适?
3 总结
位置参数:有序的传参。而关键字的存在,解决参数太多,容易搞错的局面,还有一种是两种方式的混用,先位置参数,后关键字。怎么理解呢,就是位置参数,按顺序赋值,而关键字呢,就是一种争取,大家根据个人喜好,分配位置参数剩余的变量,灵活赋值。