栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

**(double star/asterisk)和*(star/asterisk)对参数有什么作用?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

**(double star/asterisk)和*(star/asterisk)对参数有什么作用?

*args
**kwargs
是一种常见的成语,以允许参数,以作为部分所述功能的任意数量的多个上定义函数 Python文档英寸

*args
给你的所有函数参数为一个元组:

def foo(*args):    for a in args:        print(a)        foo(1)# 1foo(1,2,3)# 1# 2# 3

**kwargs
会给你所有的 关键字参数除了那些与作为字典的形式参数。

def bar(**kwargs):    for a in kwargs:        print(a, kwargs[a])  bar(name='one', age=27)# age 27# name one

这两个习惯用法都可以与普通参数混合使用,以允许使用一组固定参数和一些可变参数:

def foo(kind, *args, **kwargs):   pass

也可以以其他方式使用此方法:

def foo(a, b, c):    print(a, b, c)obj = {'b':10, 'c':'lee'}foo(100,**obj)# 100 10 lee

*l
习惯用法的另一种用法是在调用函数时解压缩参数列表。

def foo(bar, lee):    print(bar, lee)l = [1,2]foo(*l)# 1 2

在Python 3中,可以*l在分配的左侧使用(Extended Iterable Unpacking),尽管在这种情况下它提供的是列表而不是元组:

first, *rest = [1,2,3,4]first, *l, last = [1,2,3,4]

Python 3还添加了新的语义):

def func(arg1, arg2, arg3, *, kwarg1, kwarg2):    pass

该函数仅接受3个位置参数,之后的所有内容*只能作为关键字参数传递。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/366474.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号