gpt4 book ai didi

python - 有什么办法可以在 Python 中打印 **kwargs

转载 作者:太空狗 更新时间:2023-10-29 18:20:54 28 4
gpt4 key购买 nike

我只是对 **kwargs 感到好奇。我刚刚开始学习它,所以在浏览关于 stackoverflow 和视频教程的所有问题时,我注意到我们可以这样做

def print_dict(**kwargs):
print(kwargs)
print_dict(x=1,y=2,z=3)

输出为:{'y': 2, 'x': 1, 'z': 3}所以我想为什么不反过来打印 x=1,y=2,z=3

所以我尝试了这个:

mydict = {'x':1,'y':2,'z':3}
print(**mydict)

但是我得到了这样的错误:TypeError: 'z' is an invalid keyword argument for this function(有时它显示 'y' 是一个无效的关键字)。

我也试过将它分配给变量然后打印它但是我又遇到了一个错误(SyntaxError: invalid syntax):

mydict = {'x':1,'y':2,'z':3}
var = **mydict
print(var)

看到这是有效的:

def print_dict(**this):
print(this)
mydict = {'x':1,'y':2,'z':3}
print_dict(**mydict)

但是如果我执行 print(**this) 而不是 print(this) 它会给出错误。

当我尝试这段代码时,我们可以打印 *arg:

def num(*tuple_num):
print(tuple_num)
print(*tuple_num)
num(1,2,3,4)

它运行完美,输出如下:

(1, 2, 3, 4)
1 2 3 4

所以我想知道是否有任何可能的解决方案/方法来打印 **kwargs

最佳答案

语法 callable(**dictionary) 应用字典就像您使用单独的关键字参数一样。

所以你的例子:

mydict = {'x':1,'y':2,'z':3}
print(**mydict)

内部翻译为:

print(x=1, y=2, z=3)

其中确切的顺序取决于当前的随机哈希种子。由于 print() 不支持这些关键字参数,因此调用失败。

另一个 print() 调用成功,因为您将值作为单独的位置参数传递:

tuple_num = (1, 2, 3, 4)
print(*tuple_num)

实际上等同于:

print(1, 2, 3, 4)

print() 函数支持单独的参数,通过在它们之间使用 sep 值(默认情况下为空格)将它们一个一个地写出来。

**dictionary 不是调用之外的有效语法。由于 callable(**dictionary) 是调用语法的一部分,而不是对象,因此没有什么可打印的

最多,您可以格式化字典使其看起来像调用:

print(', '.join(['{}={!r}'.format(k, v) for k, v in mydict.items()]))

关于python - 有什么办法可以在 Python 中打印 **kwargs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39623889/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com