前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python中参数传递的一些理解。

Python中参数传递的一些理解。

作者头像
A_snail
发布2023-05-09 16:59:18
4280
发布2023-05-09 16:59:18
举报
文章被收录于专栏:坐看云起时

(Python中参数传递的一些理解。)

参数类型。

形参和实参

实参是实际参数,而形参是形式参数,例如

代码语言:javascript
复制
def func(a,b,c): # 这里的a,b,c 就是形式参数,
	print(a,b,c)

func(12,3,45)     # 这里的12,3,45 就是实参,也就是实际参数

参数的分类。

位置参数

代码语言:javascript
复制
def info(name,age,gender):
    print(name,age,gender)

info('张三', 23,'man')

运行结果:

关键字参数 +默认值参数

  • 关键字参数:
代码语言:javascript
复制
def func(a,b,c):
    print(a,b,c)

func(a=2,c=1,b=3)

结果:

关键字传参可以不用管参数的位置,但是需要给参数一定的值。

  • 默认值传参。 在现实生活中,我们需要录入很多重复的信息的时候,可以给定一个默认值,比如一个班级的学生,60个男生,5个女生的话,可以默认设置为男性。
代码语言:javascript
复制
def info2(name,age,gender='woman'):
    print(name,age,gender)
info2('刘亦菲', 19)

运行结果:

image-20230328211441079
image-20230328211441079

参数对比

image-20230328211503588
image-20230328211503588

结果对比:

image-20230328211516342
image-20230328211516342

info函数中gender是没有给定默认值的,所以传参的时候需要给定值

动态参数

位置参数

在运用过程中,我们可能需要传递的参数是不固定的,有时候参数多,有时候少,那么下面这个就可以解决这个问题。

  • *args * args 表示可以接受所有传递进来的位置参数,同时也还可以接受列表和字典类型的传参。 例:
image-20230328211521872
image-20230328211521872

这里我们可以看到,我们传入进去的参数,都被以元组类型打印出来了,但是我们直接传参列表和字典,列表和字典都被当做一个参数传递,打印出来的是元组里面的列表和元组里面的字典,而如果我们传递*list和*dict的话 那么传递列表的值就是单独的,而且打印的时候是一个元组。而字典也会被单独传递键名。

关键字参数
  • **kwargs参数传递
image-20230328211533762
image-20230328211533762

这里宇*不同的是,**kwargs的参数传递,只能关键字类型的和字典类型的传参,其他的会报错。

**kwargs 只有在有关键字参数的时候,才会有字典的值

混合参数的搭配使用

通过上面的了解,我们有时候需要给定一些固定的位置参数,但是又需要传递未知长度的参数,甚至最后可能还需要给关键字参数,那么我们可以将所学的几种参数搭配使用。

image-20230328211539189
image-20230328211539189

那么参数的使用顺序是 位置参数>args>关键字参数>**kwargs 这里解释以下为什么是这个顺序。 这里的c 默认情况下是为你好的,但是我们打印的时候 c变为3了,我们想要的默认值就没法生效了,所以我们想要达到想要的结果,就只能修改传递位置参数的顺序,如图,如果上面第一个传参是*args参数的话,那么我们输入的前面10个参数,全部都会被它所接收,而*kwargs 只有在有关键字参数的时候,才会有字典的值 那么它为空,此时a和b两个参数,就已经没有参数了,这里显然是行不通的。 但是打印的时候,关键字传参可以先打印。

image-20230328211543557
image-20230328211543557

接受任意类型的参数。

这个是一个比较特殊的

image-20230328211549493
image-20230328211549493

如图所示,结果也进行了备注。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • (Python中参数传递的一些理解。)
  • 参数类型。
    • 形参和实参
      • 参数的分类。
        • 位置参数
        • 关键字参数 +默认值参数
        • 参数对比
        • 动态参数
      • 混合参数的搭配使用
        • 接受任意类型的参数。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档