189 8069 5689

python中的五类参数是什么

这篇文章主要介绍python中的五类参数是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

创新互联建站服务项目包括铁门关网站建设、铁门关网站制作、铁门关网页制作以及铁门关网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,铁门关网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到铁门关省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

函数的五类参数使用例子

python五类参数:位置参数,关键字参数,默认参数,可变位置与关键字参数的使用规范

def f(a,*b,c=10,**d):
    print(f'a:{a},b:{b},c:{c},d:{d}')12

默认参数c不能位于可变关键字参数d后.

调用f:

f(1,2,5,width=10,height=20)
	a:1,b:(2, 5),c:10,d:{'width': 10, 'height': 20}

可变位置参数b实参后被解析为元组(2,5);而c取得默认值10; d被解析为字典.

再次调用f:

f(a=1,c=12)a:1,b:(),c:12,d:{}

a=1传入时a就是关键字参数,b,d都未传值,c被传入12,而非默认值。

注意观察参数a, 既可以f(1),也可以f(a=1) 其可读性比第一种更好,建议使用f(a=1)。如果要强制使用f(a=1),需要在前面添加一个星号:

def f(*,a,*b):  
    print(f'a:{a},b:{b}')

此时f(1)调用,将会报错:TypeError: f() takes 0 positional arguments but 1 was given

只能f(a=1)才能OK.

说明前面的*发挥作用,它变为只能传入关键字参数,那么如何查看这个参数的类型呢?借助python的inspect模块:

In [22]: for name,val in signature(f).parameters.items():
    ...:    print(name,val.kind)
    ...:
a KEYWORD_ONLY
b VAR_KEYWORD

可看到参数a的类型为KEYWORD_ONLY,也就是仅仅为关键字参数。

但是,如果f定义为:

def f(a,*b):
  print(f'a:{a},b:{b}')

查看参数类型:

In [24]: for name,val in signature(f).parameters.items():
    ...:     print(name,val.kind)
    ...:
a POSITIONAL_OR_KEYWORD
b VAR_POSITIONAL

可以看到参数a既可以是位置参数也可是关键字参数。

以上是“python中的五类参数是什么”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!


网站栏目:python中的五类参数是什么
网站URL:http://jkwzsj.com/article/geggie.html

其他资讯