目录
关于 *args与**args的用法*args**kwargs*args和**kwargs是什么意思*args和**kwargs的用途总结关于 *args与**args的用法
*args 和 **kwargs主要用于函数定义,你可以将不定数量的参数传递给某个函数。
(资料图)
*args
*args 不定参数(不定的意思是指,预先并不知道,函数使用者会传递多少个参数给你)
*args是用来发送一个非键值对的可变数量的参数列表给一个函数。
*args的用法:当传入的参数个数未知,且不需要知道参数名称时。
代码如下:
def func_arg(farg, *args): print("formal arg:", farg) for arg in args: print("another arg:", arg) func_arg(1,"youzan","dba","hello") # 输出结果如下: # formal arg: 1 # another arg: youzan # another arg: dba # another arg: hello
**kwargs
**kwargs 传入键值对(例如:num1=11,num2=22)
**kwargs 允许将不定长度的键值对作为参数传递给一个函数。如果想要在一个函数里处理带名字的参数,应该使用 **kwargs。
代码如下:
#利用它转换参数为字典 def kw_dict(**kwargs): return kwargs print(kw_dict(a=1,b=2,c=3)) # 输出结果如下: # {"a": 1, "b": 2, "c": 3}
*args和**kwargs是什么意思
去面试的时候,做了一道笔试题——什么是*args和**kwargs,区别在哪里?
有点蒙,好像见过,但是不知道具体的意思。所以回来查了一下资料,做一下笔记。
总的来说,*args代表任何多个无名参数,返回的是元组;**kwargs表示关键字参数,所有传入的key=value,返回字典;
*args和**kwargs的用途
*args 和 **kwargs 主要用于函数定义, 可以将不定数量的参数传递给一个函数。
*args 是用来发一个非键值对的可变数量的参数列表给一个函数; kwargs允许将一个不定长度的键值对,作为参数传递给一个函数。如果需要在一个函数中处理带名字的参数时,此时就应该使用kwargs了。
def test(a,*args,**kwargs): print(a) print(args) print(kwargs) test(1,3,5,7,c="2",d=4)
1
(3, 5, 7)
{‘c’: ‘2’, ‘d’: 4}
在test(1,3,5,7,c=‘2’,d=4)中,函数里参数对应的数值为:a=1,*args表示剩下的没有名称的参数,**kwargs表示剩余的键值对。
def ak(*args,**kwargs): print("args=",args) print("kwargs=",kwargs) print("***************************************") if __name__=="__main__": ak(2,4,6,8) ak(a=2,b=4,c=6,d=8) ak(2,4,6,8,a=1,b=3,c=5) ak("x", 2, None, a=4, b="6", c=8) #ak("a", a=1, 1, None, b="2", c=3)
同时使用*args和kwargs时,*args参数必须要列在kwargs前,否则会报错。
ak("a", a=1, 1, None, b="2", c=3)
File “”, line 1
ak(‘a’, a=1, 1, None, b=‘2’, c=3)
^
SyntaxError: positional argument follows keyword argument
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
X 关闭
X 关闭
- 15G资费不大降!三大运营商谁提供的5G网速最快?中国信通院给出答案
- 2联想拯救者Y70发布最新预告:售价2970元起 迄今最便宜的骁龙8+旗舰
- 3亚马逊开始大规模推广掌纹支付技术 顾客可使用“挥手付”结账
- 4现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 5如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 6AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 7转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 8充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 9好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 10名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?