python观察日志(part16)--收集关键词参数

网友投稿 281 2022-08-31


python观察日志(part16)--收集关键词参数

学习笔记,有错必纠

收集关键词参数

我们知道一个函数可以接收不定个数的参数,以​​*​​开头的参数名会收集所有的参数到一个元组上,例如,printall接收任意个数的参数并打印它们:

def printall(*args): print(args)printall("aer", 10, True)

输出:

('aer', 10, True)

​​*​​号操作符并不会搜集关键词实参:

In [24]: printall(1, 2, b = 'as')TypeError: printall() got an unexpected keyword argument 'b'

要收集关键词实参,可以使用​​**​​操作符:

def printall2(*args, **kwargs): print(args, kwargs)printall2(1, 2, b = 'as')

输出:

(1, 2) {'b': 'as'}

我们看到kwargs收集到的结果是一个将关键词映射到值的字典。

如果我们有一个关键词映射到值的字典,我们可以使用分散操作符​​**​​来调用函数:

class Point: def __init__(self, x = 0, y = 0, z = 0): self.x = x self.y = y self.z = z def __str__(self): return "({}, {}, {})".format(self.x, self.y, self.z)d = dict(x = 1,y = 2,z = 3)p = Point(**d)print(p)

输出:

(1, 2, 3)


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python观察日志(part18)--遍历文件夹下文件并判断后缀(python遍历当前目录下所有文件夹)
下一篇:Java深入了解数据结构之哈希表篇
相关文章

 发表评论

暂时没有评论,来抢沙发吧~